hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › jQuery › jquery里的缓存问题如何解决
查看: 1521|回复: 0
打印 上一主题 下一主题

jquery里的缓存问题如何解决

[复制链接]

2228

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2015-10-23 18:46:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

0

主题

1700

帖子

0

博客

song

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-10-31 19:41:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
jquery中ajax的缓存问题需要增加参数cache:
$.ajax({
    type: "GET",
    cache: true,
    url: 'aa.php',
    dataType: "html",
    cache: true,
    success: function (res) {
    $('.page-loading').remove();
    $('.page-content .page-content-body').html(res);
});
这样类似以下请求就可以缓存了:
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js?_=1373600904652

0

主题

1932

帖子

0

博客

740317431

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-09-16 11:22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
jquery中ajax的缓存问题需要增加参数cache:
$.ajax({
    type: "GET",
    cache: true,
    url: 'aa.php',
    dataType: "html",
    cache: true,
    success: function (res) {
    $('.page-loading').remove();
    $('.page-content .page-content-body').html(res);
});

0

主题

1902

帖子

0

博客

王之神判

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-09-16 17:49:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
解决办法: 
1.使用.ajax方法并设置 cache参数为false
2.修改jquery.js中,load方法,load方法也是调用的.ajax,增加cache:false 
3.在你请求的链接后加上随机数参数,使ajax请求认为是不同链接地址 
4.使用POST代替GET,浏览器不会对POST做缓存


对于load方法,经常采取加随机数的方法:
var url = "user.action?id="+id+"&random="+Math.random(); 
$("#comment").load(url);
可以实现每次点击都执行.load方法 使用post代替get也可以:$("#comment").load("user.action", { "id": id });

0

主题

179

帖子

0

博客

hushuokang

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-09-27 17:14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
cache(false);
true的话会读缓存,可能真的到服务器上。

假如上次访问了a.html,第二次的时候得到的是上次访问的a.html的结果,而不是重新到服务器获取。

false的话会在url后面加一个时间缀,让它跑到服务器获取结果。

cache只有GET方式的时候有效。