电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

yii2.0 靈活使用AssetBundle管理CSS樣式及JS腳本

瀏覽:127日期:2024-05-24 13:33:16

2.0的變化相信大家都看到了,其中對(duì)一個(gè)資源包概念做出了很完美的實(shí)現(xiàn),那就是AssetBundle,但是很多初學(xué)者朋友可能不太能夠正確的領(lǐng)會(huì)其中的含義

我畫了一張圖,大家可以將就看一下:

yii2.0 靈活使用AssetBundle管理CSS樣式及JS腳本

其中,控制器動(dòng)作的視圖(view)渲染順序是優(yōu)先于我們的模板頁(yè)(layout)的,那么一旦我們?cè)谀硞€(gè)視圖中使用了新的JS庫(kù),或新的CSS樣式文件,那么我們?nèi)绾稳ヌ幚砟兀?/p>

以下方式是錯(cuò)誤的,請(qǐng)避免使用:有的人會(huì)直接在視圖里添加對(duì)css或者js的link引用,這樣引入的文件是在視圖區(qū)域,而yii的默認(rèn)JS加載會(huì)放在模板頁(yè)的最后,這樣可能導(dǎo)致依賴關(guān)系混亂。比如你視圖中引用的js文件里調(diào)用了jquery包,但是執(zhí)行時(shí)jquery的加載代碼在HTML頁(yè)面的末尾,這樣導(dǎo)致頁(yè)面腳本錯(cuò)誤。

還有人會(huì)圖省事,直接把項(xiàng)目中所有的js或css文件都書寫layout模板頁(yè)里,這樣產(chǎn)生大量的無(wú)效樣式或js,影響了加載效率及頁(yè)面錯(cuò)位風(fēng)險(xiǎn)。

所以正確的方式應(yīng)該是通過(guò)AssetBundle去解決這個(gè)問(wèn)題,先發(fā)一個(gè)簡(jiǎn)單的類給大家看一下:

namespace appassets;use yiiwebAssetBundle;class AppAsset extends AssetBundle { public $basePath = ’@webroot’; public $baseUrl = ’@web’; public $css = [’public/skin/default_skin/css/theme.css’, ]; public $js = [’public/vendor/jquery/jquery-1.11.1.min.js’,’public/vendor/jquery/jquery_ui/jquery-ui.min.js’,’public/js/bootstrap/bootstrap.min.js’, ]; //依賴包 public $depends = [//這里寫你的依賴包即可,沒(méi)有就別寫 ]; //導(dǎo)入當(dāng)前頁(yè)的功能js文件,注意加載順序,這個(gè)應(yīng)該最后調(diào)用 public static function addPageScript($view, $jsfile) {$view->registerJsFile($jsfile, [AppAsset::className(), ’depends’ => ’appassetsAppAsset’]); } //導(dǎo)入編輯器 public static function addCkeditor($view) {$view->registerJsFile(’/public/js/utility/ckeditor/ckeditor.js’, [AppAsset::className(), ’depends’ => ’appassetsAppAsset’]); } }可以看到上面我創(chuàng)建的類中已經(jīng)預(yù)定義了兩個(gè)靜態(tài)方法addPageScript和addCkeditor,其中addCkeditor是一個(gè)第三方的js組件,是個(gè)編輯器,具體的開發(fā)環(huán)境中你們可以寫別的方法名及加載別的組件。那么上的這個(gè)東西寫好后應(yīng)該如何去使用呢?我們?cè)谀0屙?yè)開頭部分加上這句話://自動(dòng)加載資源AppAsset::register($this);這樣會(huì)在模板頁(yè)加載基礎(chǔ)的項(xiàng)目資源文件,比如css和js什么的。現(xiàn)在我們有一個(gè)視圖叫create-mail,需要使用ckeditor編輯器,那么我們應(yīng)該在create-mail視圖的開頭加上這句話://導(dǎo)入ckeditor包資源appassetsAppAsset::addCkeditor($this);最后解釋一下,addCkeditor()方法是我們預(yù)先定義好的,這樣我們可以把一些常見的包都拆包并預(yù)處理好,如果你覺(jué)得麻煩可以直接使用如下的方式://導(dǎo)入ckeditor包資源appassetsAppAsset::addPageScript($this,’js文件相對(duì)路徑或url’);以上的例子只是使用了js文件作為一個(gè)簡(jiǎn)單的介紹,css樣式的加載也是一樣的道理。這樣做的好處是,即使在視圖里加載css或js也會(huì)因?yàn)橐蕾囮P(guān)系而出現(xiàn)在視圖外面的常規(guī)加載區(qū)域中,規(guī)范了很多。同時(shí)也因?yàn)橐蕾囮P(guān)系,你在視圖里加載的文件肯定會(huì)排在你的基礎(chǔ)樣式或腳本的后面,不會(huì)出錯(cuò)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 高压贴片电容|贴片安规电容|三端滤波器|风华电容代理南京南山 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 广州/东莞小字符喷码机-热转印打码机-喷码机厂家-广州瑞润科技 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 谈股票-今日股票行情走势分析-牛股推荐排行榜 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 电竞馆加盟,沈阳网吧加盟费用选择嘉棋电竞_售后服务一体化 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 服务器之家 - 专注于服务器技术及软件下载分享 | 步进驱动器「一体化」步进电机品牌厂家-一体式步进驱动 | 整车VOC采样环境舱-甲醛VOC预处理舱-多舱法VOC检测环境仓-上海科绿特科技仪器有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 |