2

我想在加载脚本时禁用时间戳,因为它总是在文件 URL 之后的查询字符串中包含时间戳。请看一下你会知道的图像。

在此处输入图像描述

我还使用选项设置了 Ajax cache: true。看这里的代码:``js $.ajax({ url: url data: {}, type: 'post', cache: true, dataType: 'json', success: function (data, status) { //something here } });

and also I have set meta tag to the header of the HTML.
```html
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Pragma" content="Public">
<meta http-equiv="Cache-control" content="public">
<meta name="keywords" content="something">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">

我正在使用 jQuery v1.7.2

4

3 回答 3

3

我不确定为什么 jQuery 试图加载自己,但这似乎与$.getScript()调用有关。

您可以考虑尽可能高地添加以下代码段:

$.ajaxSetup({
    cache: true
});

将其cache: true放入您的$.ajax()不会$.getScript()以任何方式影响,这就是您在该屏幕截图中看到的内容。

于 2012-08-15T01:05:19.553 回答
1

我对codeIgniter的直接了解不多,但是应该和CakePHP中的一样。您应该有一个类似于 config 的文件名或包含调试级别的类似文件名。当它设置为调试模式时,它可能会自动为脚本添加时间戳并以不同的方式处理堆栈中的错误

于 2012-08-15T00:47:22.983 回答
1

$.ajaxPrefilter('script', function(options) {
    options.cache = true;
});

// or 

+ function($) {
    $.cachedScript = function(url, options) {
        // Allow user to set any option except for dataType, cache, and url
        options = $.extend(options || {}, {
            dataType: "script",
            cache: true,
            url: url
        });

        // Use $.ajax() since it is more flexible than $.getScript
        // Return the jqXHR object so we can chain callbacks
        return $.ajax(options);
    };
}(jQuery);

// now, you can use $.cachedScript()

可以去查看文档$.getScript()

于 2015-05-27T03:02:17.677 回答