动态加载的.html页面不使用缓存来存储JS文件

时间:2014-03-27 15:23:50

标签: jquery html caching

情况如下:

我有一个使用Jquery.load()加载子页面的页面:

loadMainContent: function(url, success)
{
    $("#app-main").load(url, function(response, status, xhr) {
        if (status == "error")
        {
            /* @todo Show loading error page */
            console.log("Error message");
        }
        else
        {
            if (typeof success == "function")
            {
                success();
            }
        }
    });
    app.getSession();
}

问题是:在加载的.html文件中,我包含了一些' .js'文件,应该被缓存,但它没有被缓存。

我的谷歌Chrome控制台显示:

XHR finished loading: "http://www.cdttravel.cashmate.com.br/travel/list". jquery.min.js:4 (The sub-page that i loaded)
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/bloodhound.js?_=1395932898636". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/core/typeahead.js?_=1395932898637". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/app-travel.js?_=1395932898638". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/moment.js?_=1395932898639". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/langs.js?_=1395932898640". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/bootstrap-datetimepicker.min.js?_=1395932898641". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/ajax/query/session". jquery.min.js:4
XHR finished loading: "http://www.cdttravel.cashmate.com.br/ajax/travel/form/init". jquery.min.js:4

请注意,所有.js文件后跟一个?_ = xxxxxxxxxxxxxxxxx随机数,阻止它们被缓存。

但我想在用户浏览器中缓存文件。如何在URL中删除此随机查询? 显然它们是由Jquery生成的,但不确定。

提前致谢!

1 个答案:

答案 0 :(得分:2)

尝试添加此代码:

$.ajaxSetup({'cache':true});

默认情况下,jQuery确保永远不会缓存对js文件的请求。来自docs

  

缓存(默认值:true,false,对于dataType'script'和'jsonp')