`

防止jQuery Load使用缓存的方法

阅读更多

一、用法

jquery的load函数是请求另一个文件并加载到当前DOM里的调用,load方法的完整格式是:load( url, [data], [callback] )(注意没有参数是GET方式请求,有参数则是 POST方法)。

  • url:是指要导入文件的地址。
  • data:可选参数;因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文件时,我们可以把要传递的参数放在这里。
  • callback:可选参数;是指调用load方法并得到服务器响应后,再执行的另外一个函数。

 

缓存这东西,在一定程度上加快了页面的装载,但是也常常给我们带来麻烦。我在上篇文章里简单介绍了jQuery中Load方法的使用。在实际运用中,我们可能会碰到浏览器缓存的问题。比如我就在IE7里碰到这个问题。

jQuery Load样本代码:

$(document).ready(function(){
  $("#labels").load("/blog/categories/labels.html");
  //在页面装载时,在ID为#labels的DOM元素里插入labels.html的内容。
});

当我更新了labels.html以后,在IE7里load方法仍旧在使用旧的labels.html,就算我按刷新键也不管用。好在jQuery提供一个防止ajax使用缓存的方法,把下面的语句加在head的javascript文件里,就可以解决问题。

 

$.ajaxSetup ({
    cache: false //关闭AJAX相应的缓存
});

此外我再介绍几种方法解决缓存的方法。注意:我没有在jQuery load的问题上测试过,这些方法仅供参考!

1.更改文件名,比如把labels.html改成lables_new.html,但是这是没有办法的办法,一般没有人这么做。

2.在labels.html后加上特定时间,比如lables.html?20081116。在实际工作中,在我更新css/javascript文件后,我都是用这种办法来防止文件被缓存。

3.在labels.html文件的顶部加入以下声明:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

4.load函数不仅可以调用HTML,也可以调用script,比如labels.php,可以在php文件里使用header函数:

<?php
header("Cache-Control: no-cache, must-revalidate");
?>

 

 

另外两种解决方案:

在请求路径中添加一个时间参数值为当前的时间或者在表单中添加一个隐藏的字段将该字段的值设置为当前时间。

分享到:
评论

相关推荐

    防止jQuery ajax Load使用缓存的方法小结

    一、用法 jquery的load函数是请求另一个文件并加载到当前DOM里的调用,load方法的完整格式是:load( url, [data], [callback] )(注意没有参数是GET方式请求,有参数则是 POST方法)。 * url:是指要导入文件的地址。...

    禁止JQuery中的load方法装载IE缓存中文件的方法

    使用方法如下: 代码如下:$(“#panel”).load(“test.asp”); //在页面装载时,在ID为#panel的DOM元素里test.asp的内容。但是,当你修改test.asp文件的内容以后,在IE浏览器下,再利用以上方法重新装载该文件时,你...

    jQuery权威指南-源代码

    其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...

    jquery 缓存问题的几个解决方法

    .load方法没有设置 cache参数 默认true ,特别在IE浏览器下,一般的ajax的方法都是cache等于true的! 解决办法几个: 1....修改jquery.js中,load方法,load方法也是调用的.ajax,增加cache:false 3.在你请求的链接

    Jquery中Ajax 缓存带来的影响的解决方法

    最近项目中遇见 Jquery Ajax 缓存问题,load出来的页面状态有时正常,有时不对,记录一下,希望对大家有帮助

    jQuery 1.4.1 中文参考

    2.3 数据缓存 27 2.3.1 data([name]) 27 2.3.2 data(name, value) 28 2.3.3 data(obj) 29 2.3.4 removeData(name) 29 2.3.5 jQuery.data(element, key, value) 29 2.3.6 jQuery.data([element], [key]) 30 2.4 队列...

    jquery电子文档chm

    As of jQuery 1.2, you can load JSON data located on another domain if you specify a JSONP callback, which can be done like so: "myurl?callback=?". jQuery automatically replaces the ? with the correct ...

    jQuery的缓存「jQuery-cache」-crx插件

    用本地文件替换jQuery,以加速页面加载。 Replace jQuery file in the page ...欢迎到 https://github.com/yangsibai/jQuery-cache 使用 pull request 补充其他常见文件的本地缓存。 支持语言:English (United States)

    jQuery权威指南366页完整版pdf和源码打包

    10.2 处理选择器中的不规范元素标志 10.2.1 选择器中含有特殊符号 10.2.2 选择器中含有空格符号 10.3 优化事件中的冒泡现象 10.4 使用data()方法缓存数据 10.5 解决jquery库与其他库的冲突 ...

    jQuery 1.3 API 参考文档中文版 html

    * load 的data参数在jQuery 1.3中也可以接受String + ajax的error回调的第二个参数可能值"timeout", "error", "notmodified" 和 "parsererror" + ajax参数xhr * animate 的duration为0的问题 * show, hide, toggle, ...

    jquery-1.1.3 效率提高800%

    默认使用get方法发送请求,但如果指定了额外的参数,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL参数中指定一个jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url...

    jquery 性能优化 from 蓝色理想

    总是从ID选择器开始继承 在class前使用tag 将jquery对象缓存起来 掌握强大的链式操作 使用子查询 对直接的DOM操作进行限制 冒泡 消除无效查询 推迟到 $(window).load 压缩js 全面掌握jquery库

    ajax缓存问题解决途径

    以上这些是不是缓存的原因啊?怎么解决? ajax缓存问题解决途径: 是缓存的问题。在服务端加 header(“Cache-Control: no-cache, must-... 您可能感兴趣的文章:AJAX 缓存问题的两种解决方法(IE)防止jQuery ajax Load

    IE下Ajax缓存问题的快速解决方法(get方式)

    折腾了半天,程序中使用jquery的load方法进行请求,很奇怪为啥第二次无法发送请求。百度了一把,谁知load是用get方式进行请求的,因此IE浏览器对 其进行缓存了。网上搜了很多解决方案,一大把,下面是我认为比较全面...

    jquery1.11.0手册

    数据缓存 data([key],[value]) removeData([name|list])1.7* $.data(ele,[key],[val])1.8- 队列控制 queue(e,[q]) dequeue([queueName]) clearQueue([queueName]) 插件机制 jQuery.fn.extend(object) ...

    jQuery1.3API参考文档中文版

    * load 的data参数在jQuery 1.3中也可以接受String + ajax的error回调的第二个参数可能值"timeout", "error", "notmodified" 和 "parsererror" + ajax参数xhr * animate 的duration为0的问题 * show, hide, toggle, ...

Global site tag (gtag.js) - Google Analytics