动态加载js 文件
2013-10-18 19:40
302 查看
最近在写管理后台,用的是dwz框架.其中的页面很多都被规划好了,我仅能将在navTab里写页面。
我的经历是,我在navTab中写有
其中出现的问题是,GLR not defined,这是因为 ready这个方法在这里其中已经被dwz忽略了,那么上面的引入GLR.js 其实是异步加载。
dwz先加载其框架的js文件,并使用了类似 JQuery.ready 的初始化方法,所以你在navTab中写 $.ready是不起作用的。
必须等我引入的这个第三方js库载入后才可以执行我的业务代码,所以这里就用到了动态加载js文件。
如果仅仅是依赖这个GLR文件,那还好办,可以把业务逻辑代码写到 $.getScript 的回调函数中,
但是如果需要依赖多个文件
但是后来,我刷新页面的时候,重复请求这些js库文件了。原因是获取js 文件的url 被转成了 http://xxxxxxx./js/exejquery-color.js?_=1382112720
从而避免了使用缓存。(浏览器中会对使用 get 的http请求会进行缓存,同样的url 返回同样的值。一种避开缓存的方式便是为url加上时间戳)
jquery 默认 $.getScript是不使用缓存的。
那么我们可以
这样就可以使用缓存了。
我的经历是,我在navTab中写有
<script type="text/javascript" scr="js/ext/GLR/GLR.js"> <script type="text/javascript> $(document).ready(function(){ GLR.create............ }); </script>
其中出现的问题是,GLR not defined,这是因为 ready这个方法在这里其中已经被dwz忽略了,那么上面的引入GLR.js 其实是异步加载。
dwz先加载其框架的js文件,并使用了类似 JQuery.ready 的初始化方法,所以你在navTab中写 $.ready是不起作用的。
必须等我引入的这个第三方js库载入后才可以执行我的业务代码,所以这里就用到了动态加载js文件。
如果仅仅是依赖这个GLR文件,那还好办,可以把业务逻辑代码写到 $.getScript 的回调函数中,
但是如果需要依赖多个文件
$.when( $.getScript( "{{MEDIA_PREFIX}}/js/ext/jquery-color.js" ), $.getScript( "{{MEDIA_PREFIX}}/js/ext/GLR/GLR.js" ), $.getScript( "{{MEDIA_PREFIX}}/js/ext/GLR/GLR.messenger.js" ), $.getScript( "{{MEDIA_PREFIX}}/js/loc/xmlEditor.js" ), $.Deferred(function( deferred ){ $( deferred.resolve ); }) ).done(function(){ //业务逻辑代码放这里
但是后来,我刷新页面的时候,重复请求这些js库文件了。原因是获取js 文件的url 被转成了 http://xxxxxxx./js/exejquery-color.js?_=1382112720
从而避免了使用缓存。(浏览器中会对使用 get 的http请求会进行缓存,同样的url 返回同样的值。一种避开缓存的方式便是为url加上时间戳)
jquery 默认 $.getScript是不使用缓存的。
那么我们可以
$.ajaxSetup({ cache: true }); $.when(............
这样就可以使用缓存了。
相关文章推荐
- 兼容IE的动态加载js文件的方法
- 动态加载js文件
- 动态加载JS文件,完美解决跨域、编码、嵌套、队列、兼容性、执行顺序等相关问题。
- 用ajax动态加载需要的js文件
- 动态加载js文件
- 使用jquery动态加载js文件的方法
- js 如何通过js脚本动态加载js文件及读写cookie
- 动态加载JS文件方法总结
- 如何按需动态加载js文件
- 动态加载JS(css)文件
- javascript开发随笔二 动态加载js和文件
- 动态加载、移除、替换js/css文件
- JS 动态加载 CSS 文件和JS文件,加载图片
- jquery动态加载js/css文件方法(自写小函数)
- Ext动态加载JS文件
- 动态加载js文件 document.createElement
- js加载之使用DOM方法动态加载Javascript文件
- 如何按需动态加载js文件
- JavaScript学习总结(十九)——使用js加载器动态加载外部Javascript文件