Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我使用$.Ajax Post加载更多数据时,缓存无法处理JS文件_Php_Javascript_Ajax_Caching_Post - Fatal编程技术网

Php 当我使用$.Ajax Post加载更多数据时,缓存无法处理JS文件

Php 当我使用$.Ajax Post加载更多数据时,缓存无法处理JS文件,php,javascript,ajax,caching,post,Php,Javascript,Ajax,Caching,Post,我已经准备好将缓存与JS文件一起使用,它确实有效,但问题是 我在div标记上有一个.click事件,它触发了一个$.AJAX方法,让我从数据库中获得更多信息/数据 当信息被检索时,我在控制台网络活动中看到所有我的JS文件都被再次请求,并且缓存没有被使用 步骤: 1我从api.google进入主页main.php和JQUERY.MIN.JS。。。。从缓存中检索 2我单击div,从moreinformation.php获取更多信息 3 moreinformation.php返回带有dataTable

我已经准备好将缓存与JS文件一起使用,它确实有效,但问题是

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

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

步骤:

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

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

3 moreinformation.php返回带有dataTable插件的html代码

4该表显示在主页上

在控制台中,我可以很好地看到JQUERY.MIN.JS文件再次被加载,并带有?\uu=时间戳

Ex: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?_=1361806746980
morinfo.php拥有jquery.min.js和dataTables.js的

我希望你能帮助我


谢谢

根据上述情况,目前还不完全清楚缓存的位置,但下面的情况可能是问题的原因

jqueryajax方法有一个cache参数

缓存默认值:对于数据类型“script”和“jsonp”,为true、false 类型:布尔型 如果设置为false,它将强制浏览器不缓存请求的页面。注意:将缓存设置为false只能正常工作 带着头,接受请求。它通过将{timestamp}附加到 获取参数。对于其他类型的对象,不需要该参数 请求,但在IE8中,当向已发布的URL发布帖子时除外 被一个GET请求

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


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

将我的注释转换为答案,因为这似乎是您想要的解决方案


最好的解决方案是将服务器更改为只返回实际需要的数据,而不是返回包含jQuery的整个HTML页面。也可以加快检索速度。

JS文件的缓存控制头是什么?您能否显示代码和网络活动输出,以确保文件不是从缓存中提供的?最好的解决方案是更改服务器,使其仅返回您实际需要的数据,而不是返回包含jQuery的整个HTML页面。我在缓存行中寻找答案时显得非常糟糕,我看不到解决这个问题的简单方法@你的评论太棒了!我不知道为什么一开始我想不起来…@Quequito-我把我的评论变成了一个答案,这样你就可以表明这是你需要的答案。