如何让jQuery .load告诉浏览器获取我的页面的“新”版本?

时间:2012-01-12 07:38:28

标签: jquery

我有以下内容:

function openClick(e) {
    e.preventDefault();
    $("<div></div>")
        .addClass("dialog")
        .attr("id", $(this).attr("data-dialog-id"))
        .appendTo("body")
        .dialog({
            title: $(this).attr("data-dialog-title"),
            close: function () { $(this).remove() },
            modal: true
        })
        .load(this.href);
};

当它运行时,它会加载看起来像我的页面的旧版本,它似乎永远不会调用控制器。它可以返回一个缓存版本吗?我尝试过不同的浏览器并获得相同的效果吗?

2 个答案:

答案 0 :(得分:0)

尝试加载this.href?r='+Math.random()*999。随机查询字符串将使浏览器忽略任何缓存的副本并获得一个新的。

答案 1 :(得分:0)

尝试为您的请求添加时间戳。应禁用缓存。如果它没有解决问题,我猜你的缓存位于其他地方

function openClick(e) {
    e.preventDefault();
    var timestamp = Math.round(new Date().getTime() / 1000);
    $("<div></div>")
        .addClass("dialog")
        .attr("id", $(this).attr("data-dialog-id"))
        .appendTo("body")
        .dialog({
            title: $(this).attr("data-dialog-title"),
            close: function () { $(this).remove() },
            modal: true
        })
        .load(this.href + '?_=' + timestamp);
};