JQuery中ajax如何缓存引入的js文件

有如下代码

$.ajax({
    type: "GET",
    cache: true,
    url: 'aa.php',
    dataType: "html",
    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

这样好像 js 文件不被缓存
请问有没有方法去掉 _=1373600904652 ???

阅读 8.2k
4 个回答

昨晚研究了下这个问题,知道怎么回事了,在你的 ajax 请求前加一段代码:

$.ajaxSetup({
  cache: true
});

同时你的那句 cache: true 可以省略,因为默认就是 cache: true,只有 dataType"script""jsonp"cache 默认为 false。你在此处加的 cache: true 其实只影响了 aa.php 的缓存与否。

cache不要true啊

cache:true改成cache:false,再看看请求的链接。

我认为CSS和JS不是AJAX时候加载的,是在CALLBACK里填充到现有页面时加载的,你可以在CALLBACK第一行打个断点验证一下,断住时应该只有aa.php的请求。
如果猜测正确,你可以在$('.page-content .page-content-body').html(res);之前,把res里的js地址替换了再插进去。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题