发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
动态加载Javascript是一项非常强大且有用的技术。这方面的主题在本站已经讨论了不少,我也经常会在一些个人项目上使用RequireJS和Dojo加载js。它们很强大,但有时候也会得不偿失。如果你使用的是jQuery,它里面有一个内置的方法可以用来加载单个js文件。当你需要延迟加载一些js插件或其它类型的文件时,可以使用这个方法。下面就介绍一下如何使用它!
jQuery内置了一个方法可以加载单一的js文件;当加载完成后你可以在回调函数里执行后续操作。最基本的使用jQuery.getScript的方法是这样:
jQuery.getScript(
"/path/to/myscript.js"
,
function
(data, status, jqxhr) {
/*
做一些加载完成后需要执行的事情
*/
});
这个getScript方法返回一个jqxhr,你可以像下面这样用它:
)
.done(
() {
/* 耶,没有问题,这里可以干点什么 */
})
.fail(
/* 靠,马上执行挽救操作 */
最常见的使用jQuery.getScript的地方是延迟加载一个js插件,而且在加载完成时执行它:
"jquery.cookie.js"
jQuery.cookie(
"cookie_name"
"value"
, { expires: 7 });
如果你需要更高级的功能,比如加载多个脚本,或加载不同类型的文件(文本文件,图片,css等),我建议你使用一个专门的JavaScript加载工具。如果是为了延迟加载一个js插件,避免每个页面都去加载,这个getScript很完美了。
有一个非常重要的问题,使用jQuery.getScript时,你需要用一个时间戳字符串跟在需要加载的js地址后面,防止它被缓存。但是,如果你希望这个脚本被缓存,你需要设置全局缓存变量,像下面这样:
jQuery.ajaxSetup({
cache:
true
如果你并不想使用全局缓存变量,你也可以使用jQuery.ajax,并注明dataType是script:
jQuery.ajax({
url:
dataType:
"script"
}).done(
在加载脚本时一定要小心缓存问题!
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
jquery动态加载JS【方法getScript】的改进
jquery动态加载JS【方法getScript】的改进。这个方法是jquery自身提供的一个用于动态加载js的方法。当网站需要加载大量js时,动态的加载...
Jquery Ajax请求方法小结(值得收藏)
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).jQuery代...
使用jquery的load方法加载html页面,但是html引入的js不生效
使用jquery的load方法加载html页面,但是html引入的js不生效。//js部分://当前页面的js文件<script src="../../js/carriage/ca...
引用CDN的方法
接下来,我们继续简化加载本地脚本的代码,当jQuery成功加载到页面中,它会创建一个全局的jQuery变量,我们可以通过window的jQuery属性...
jquery js 动态加载 js文件
jquery js 动态加载 js文件。如果用jquery append直接加载script标签的话,会报错的。除了document.write外,还有没有其他的比较好的动态加载js文件的方法。
jQuery中Ajax+Spring MVC实现跨域请求
jQuery中Ajax+Spring MVC实现跨域请求。jQuery对跨域请求有两种解决方案分别是jQuery的jquery.ajax jsonp格式和jquery.getScript方式,而且这两种方式都只支持get方法。这里主要谈的是jsonp跨域的实现。...
webdriver调用js在页面加载jquery
webdriver调用js在页面加载jquery.JQuery是js一个流行的优秀框架,使用jquery会比使用js容易和方便很多,因为jquery提供了很多方便的方法,在webdriver中使用jquery进行辅助有时候会方便很多。在使用JQ...
RequireJS 中文网
<script data-main="js/app.js" src="js/require.js"></script>requirejs.config({ //By default load any module IDs from js/lib baseUrl: ''js/lib'...
Chrome 插件开发,入门Demo
微信扫码,在手机上查看选中内容