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

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

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

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

一、用法
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文件的顶部加入以下声明:


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

代码如下:



另外两种解决方案:
在请求路径中添加一个时间参数值为当前的时间或者在表单中添加一个隐藏的字段将该字段的值设置为当前时间。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • MySQL防止delete命令删除数据的两种方法
  • Asp.net防止重复提交的实现方法
  • c#.net防止按F5刷新页面重复提交的方法
  • 急求减少linux SYN半连接数以便在一定程度上防止DOS攻击的方法!
  • 几种防止表单重复提交的方法
  • 请问各位大侠有没有防止class被反编译的方法?多多益善
  • Asp.net弹出窗口同时防止刷新重复提交的方法
  • asp.net防止后退与重复提交表单的简单方法
  • PHP防止表单重复提交的几种常用方法汇总
  • php防止伪造的数据从URL提交方法
  • c#防止同一账号重复登录(cache方法)
  • 数据库 iis7站长之家
  • php伪造ip与防止伪造ip方法解析
  • php防止页面后退的方法
  • 论坛设计中,关于防止用户发含有HTML贴子破坏论坛结构的方法的讨论!!!
  • Asp.net防止后退、刷新重复提交的方法
  • 使用VS2005自带的混淆器防止你的程序被反编译的方法
  • C#判断上传文件是否是图片以防止木马上传的方法
  • mysql insert if not exists防止插入重复记录的方法
  • asp.net防止刷新重复提交的方法与代码
  • 请问socket编程中是如何防止别人恶意进行数据包复制?
  • 程序中如何防止文件操作冲突?
  • sqlserver中如何防止数据库被下载
  • 防止反编译的功能
  • 如何防止没有权限的人由于知道url,直接输入url,来察看文件呢?
  • 如何防止JtextArea里的文字被用户选择并copy???
  • 如何防止用户更新页面刷新计数器!
  • 怎样防止非本域的form提交
  • 请问Apache怎样防止CC攻击?
  • 请教怎么让计数器防止刷新???
  • 关于qmail里smtp,pop3,vpopmail对防止垃圾邮件relay的问题


  • 站内导航:


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

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

    浙ICP备11055608号-3