我在客户端通过jQuery.getScript加载了一个javascript文件,并且在服务器端通过1小时浏览器缓存设置了缓存控制标头。 看来IE会缓存ajax请求,并且文件中存在的功能不会在IE中执行。 在getScript调用中将false设置为是否会覆盖从服务器端设置的1hr的缓存控制标头?

var jsCache = true;
    if($.browser.msie){
        jsCache = false;
    }
        if(!initialized){

            $.getScript('thatjsfileurl', function() { 
             $("#welcome").pluginInit({
                start:'newPage'
             });  
             initialized = true;
            },jsCache);
        }

注意:也有Akamai,因此无法在Servlet端设置浏览器检测代码。

===============>>#1 票数:1

根据getScriptjQuery文档,getScript getScript()调用没有缓存设置参数,因此您无需对jsCache变量做任何事情。

您可以将时间戳号添加到URL中,并绕过任何IE缓存。

    if(!initialized) {
        $.getScript("thatjsfileurl" + "?now=" + new Date().getTime(), function() { 
            $("#welcome").pluginInit({
               start:'newPage'
            });  
            initialized = true;
        });
    }

===============>>#2 票数:0 已采纳

通过测试上面发布的代码,我自己找到了答案。 当我们将变量设置为cache设置为false时,浏览器会覆盖服务器端标头变量,例如cache-control:1hr等。 每次将缓存设置为false时,IE浏览器都会从服务器获取新副本。

var jsCache = true;
    if($.browser.msie){
        jsCache = false;
    }
        if(!initialized){

            $.getScript('thatjsfileurl', function() { 
             $("#welcome").pluginInit({
                start:'newPage'
             });  
             initialized = true;
            },jsCache);
        }

  ask by neelmeg translate from so

未解决问题?本站智能推荐: