当前位置:  编程技术>WEB前端

使用jQuery异步加载 JavaScript脚本解决方案

    来源: 互联网  发布时间:2014-08-25

    本文导语:  JavaScript 加载器在 Web 开发中是非常强大和有用的工具。目前流行的几个加载器,像 curljs、LABjs 和 RequireJS 使用都很广泛。他们功能强大的,但有些情况下可以有更简单的方案。 如果你正在使用 jQuery,有一个内置的方法可以用...

JavaScript 加载器在 Web 开发中是非常强大和有用的工具。目前流行的几个加载器,像 curljs、LABjs 和 RequireJS 使用都很广泛。他们功能强大的,但有些情况下可以有更简单的方案。

如果你正在使用 jQuery,有一个内置的方法可以用来加载脚本。如果你想延迟加载插件或任何其他类型的脚本,都可以使用这种方法。下面给大家介绍如何使用它。

实现方法

jQuery 内置有 getScript 方法来加载一个脚本,处理返回的结果可以有几种方法来实现。最基本的用法 jQuery.getScript 看起来像这样:
代码如下:

jQuery.getScript("/path/to/myscript.js", function(data, status, jqxhr) {

/*
  在脚本已载入并执行后,就可以做一些处理了
*/

});

getScript 方法返回一个 jqXHR 对象,因此可以这样使用:
代码如下:

jQuery.getScript("/path/to/myscript.js")
.done(function() {
/* 执行成功后的处理 */
})
.fail(function() {
/* 执行失败后的处理 */
});

使用 jQuery.getScript 的最常见场景是延迟加载一个插件,并在加载后调用它:
代码如下:

jQuery.getScript("jquery.cookie.js")
.done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});

如果你需要做更高级的事情,如加载多个脚本和不同类型的文件(文本文件,图像,CSS 文件等),我建议你切换到一个功能更强大的 JavaScript 加载器。如果只想延迟加载插件,而不是简单地在每个页面加载的情况下,getScript 是完美的!

缓存问题

需要注意的是,当使用 jQuery.getScript 的时候,在脚本 URL 后面会自动被添加上时间戳,让脚本不缓存。因此你需要设置让所有的请求都缓存脚本:
代码如下:

jQuery.ajaxSetup({
cache: true
});

如果您不希望覆盖所有的缓存与你的 AJAX 请求,最好使用 jQuery.ajax 方法并把 dataType 设置为 script,例如这样:
代码如下:

jQuery.ajax({
url: "jquery.cookie.js",
dataType: "script",
cache: true
}).done(function() {
jQuery.cookie("cookie_name", "value", { expires: 7 });
});

在加载脚本的时候需要特别注意缓存问题!

    
 
 

您可能感兴趣的文章:

  • 使用BeginInvoke,EndInvoke异步调用委托的代码
  • 基于使用BeginInvoke,EndInvoke异步调用委托的实现代码
  • 使用jquery.upload.js实现异步上传示例代码
  • 跨平台python异步回调机制实现和使用方法
  • 解析使用enumerator模式简化异步操作的详解
  • .net4.5使用async和await异步编程实例
  • python高并发异步服务器核心库forkcore使用方法
  • Android中BroadcastReceiver(异步接收广播Intent)的使用
  • 在Python中使用异步Socket编程性能测试
  • AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
  • 使用kendynet构建异步redis访问服务
  • php使用fscok实现异步调用
  • .NET中的async和await关键字使用及Task异步调用实例
  • 使用异步方式调用同步方法(实例详解)
  • asp.net 使用js分页实现异步加载数据
  • shell 脚本中命令别名在脚本外无法使用
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • 关于unix使用参数导致脚本输出异常(与脚本内直接带参数输出结果不同)
  • 如何在Linux下使用脚本实现程序的自动重启!望各位详解!
  • 大家好,我想问下有人用过"linux进程的内存使用解析"中推荐使用的"Ben Maurer写的perl脚本"查看内存么
  • 如何在使用命令行去修改系统脚本?
  • 有没有方法可以使用脚本批量修改bash环境变量
  • 如何在shell脚本中使用source命令?
  • Ubuntu下Shell脚本中[]的使用
  • 使用脚本向进程发出命令
  • linux使用shell脚本,如何创建用户,并设置用户密码?能否给出示例?
  • 急!!!AIX上监控CPU和内存使用率的脚本
  • 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行 iis7站长之家
  • linux下使用shell脚本编译java报错?
  • oracle使用sql脚本生成csv文件案例学习
  • ORACEL使用脚本来修改表结构
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 菜鸟问题:********如何在Javascript中使用ADO**********
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • 使用JavaScript实现的Flash运行环境 Gordon
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • 请问如何在Javascript中使用JSP语句?
  • 请教JSP变量在JavaScript中使用的问题.
  • Javascript里的两种使用正则的方法
  • 散点分,顺便问一下哪位有JavaScript的使用帮助资料<主要是里面的各种对象及方法属性的使用>
  • 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • javascript如何在.js文件中使用jsp中的变量
  • 想嵌套使用javascript,和jsp
  • 请问在Mozilla中如何使用click()事件?(javascript,html)。快快帮我啊!
  • python使用PyV8执行javascript代码示例分享
  • JavaScript 使用正则表达式进行表单验证的示例代码
  • Javascript中使用exec进行正则表达式全局匹配时的注意事项
  • 关于javascript冒泡与默认事件的使用详解
  • javascript 正则表达式(二) 使用技巧说明
  • 使用Rhino让java执行javascript的方法实例
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3