business_hour
(business_hour@hotmail.com)
1
我的后台是一个web桌面,所有请求的页面通过jquery的load函数加载,在代码编写中发现如果被load进来的页面使用了zii中的一些挂件会导致一些js操作失效,删除zii挂件后一切正常,调试了一整个通宵才发现可能是js库重复加载导致的,被加载的页面使用zii后yii会自动将要用到的js库文件插入到页面首部,而这些js库在请求加载的主页面中已经存在,请问该如何去除掉这些重复加载的js库文件呢?
查过yii的api后,发现CClientScript类中有一个unifyScripts"的方法可以去除重复的js文件,我以“Yii::app()->clientScript->unifyScripts();”这种方式调用后,出现“CClientScript 没有名为 "unifyScripts" 的方法。 ”的错误提示,该如何使用这个方法呢?
请帮帮我,感激不尽!
没有用过zii,不过,你能知道它加载的那些js文件吧,那就可以自己加载啦,给<script … 加一个id,然后自己管理。
xueyang
(Xueyangkk)
4
Yii::app()->clientScript->unifyScripts();”这种方式是错误的
clientScript 在里边是个属性,貌似没有赋值之前不能这样
//获取一个CClientScript
$cs=Yii::app()->getClientScript();
这样就可以操作了
xueyang
(Xueyangkk)
5
另外 这不是一个好方法 !你可以在config里 修改你加载的文件配置
把不需要JS文件除掉 。。
yangmls
(Yangmls)
6
这么用是可以的,因为它是CComponent的子类
unifyScripts提示出错是因为它是一个protected方法,不能在外部调用,CClientScript在render的时候已经默认运行过这个method了