禁用带时间戳的加载脚本

时间:2012-08-15 00:42:01

标签: php javascript ajax codeigniter

我想在加载脚本时禁用时间戳。请看图像

enter image description here

http://dl.dropbox.com/u/19616542/Capture.PNG

我还设置了ajax,cache:true。这是代码:

$.ajax({
            url:url
            data:{},
            type:'post',
            cache: true,
            dataType:'json',
            success:function(data,status){
 //something here

            }
            else {
                window.location.reload();
            }
            }
});

我也有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.1.7.2

3 个答案:

答案 0 :(得分:3)

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

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

$.ajaxSetup({
    cache: true
});

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

答案 1 :(得分:1)

我对codeIgniter没有太多了解,但它应该与CakePHP中的相同。你应该有一个像config或类似的文件名包含调试级别。当它设置为调试mod时,它可能会自动为脚本添加时间戳并以不同的方式处理堆栈错误

答案 2 :(得分: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()