0

我有我在下面粘贴的代码,由另一个 Stackoverflow 成员提供。我已将此代码添加到 Kentico Web 部件中,并设置了缓存minutes=0,认为这将解决我的缓存问题。可以,但在 IE 中不行。有什么方法可以调整此代码以在用户访问页面时刷新内容,或者当我们必须更新 html 文件时?

// article footer
Date.prototype.getWeek = function() {
    var onejan = new Date(this.getFullYear(),0,1);
    var today = new Date(this.getFullYear(),this.getMonth(),this.getDate());
    var dayOfYear = ((today - onejan +1)/86400000);
    return Math.ceil(dayOfYear/7)
};

jQuery(function(){
    //Quotes/Testimonials
    var today = new Date();
    var weekno = today.getWeek();
    jQuery('#quotes-wrapper').load('/quotesroller.html div.quote-'+weekno);         
});
4

2 回答 2

2

添加一个 cachebust 参数。因为它是一个 GET 请求,所以 IE 很烦人并且总是缓存内容。

var time = (new Date()).getTime();
jQuery('#quotes-wrapper').load('/quotesroller.html?_cb=' + time + ' div.quote-'+weekno);
于 2012-05-15T19:03:31.430 回答
0

使用更复杂的功能可能会更好,例如$.ajax()如果您想根据每个请求控制缓存。或者,如果您只想将其关闭,请将其放在脚本的顶部:

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

编辑:要仅为此请求设置不缓存,请将您的负载替换为:

$.ajax({
    url: '/quotesroller.html div.quote-'+weekno, //that's based on your URL above
    cache: false,
    success: function(result) {
        jQuery('#quotes-wrapper').html(result);
    }
});
于 2012-05-15T19:04:49.423 回答