1

我已经准备好将缓存与 JS 文件一起使用,它确实有效,但事情就是这样......

我在 div 标签上有一个 .click() 事件,它触发了一个 $.AJAX 方法,让我从数据库中获取更多信息/数据。

当信息被检索时,我在控制台(网络活动)中看到我的所有 JS 文件都被再次请求并且缓存没有被使用......

脚步:

1)我进入主页(main.php)和JQUERY.MIN.JS(来自api.google ....)从缓存中检索...

2)我点击div,从moreinformation.php获取更多信息

3)moreinformation.php返回带有dataTable插件的html代码(http://www.datatables.net/

4) 表格显示在主页...

在控制台中,我可以完美地看到 JQUERY.MIN.JS 文件正在使用 ?_=TIMESTAMP 再次加载

Ex: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?_=1361806746980

morinformation.php 有 <scripts> 到 jquery.min.js 和 dataTables.js...

我希望你能帮帮我!

谢谢!!

4

2 回答 2

0

基于上述(尚不完全清楚您在哪里缓存),但看起来下面可能是您的问题的原因。

Jquery Ajax 方法有一个缓存参数。

缓存(默认值:true,对于 dataType 'script' 和 'jsonp' 为 false) 类型:Boolean 如果设置为 false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为 false 仅适用于 HEAD 和 GET 请求。它通过将“_={timestamp}”附加到 GET 参数来工作。其他类型的请求不需要该参数,除非在 IE8 中对已由 GET 请求的 URL 进行 POST。

发送请求时,尝试将此设置为 false。

http://api.jquery.com/jQuery.ajax/

它这样做是为了覆盖内置缓存中的浏览器,以阻止 AJAX 结果返回旧的缓存值。

于 2013-02-25T16:04:29.760 回答
0

将我的评论变成答案,因为这似乎是您想要的解决方案。

最好的解决方案是更改服务器以仅返回您实际需要的数据,而不是其中包含 jQuery 的整个 HTML 页面。也可以更快地检索。

于 2013-02-25T16:37:02.267 回答