jQuery:点击按钮后刷新/重新加载页面

45

我有一个按钮,在进行AJAX调用后加载,当我点击它时,我想重新加载页面(就像按下F5键一样)

我尝试过

$( ".delegate_update_success" ).click(function() {
    location.reload();
});

但它只是进行了简单的刷新,而我的页面并没有发出新的请求来获取内容。应该像我输入URL获取该页面一样。


2
这些请求被缓存了吗? - Arun P Johny
5
重新加载当前页面并忽略缓存。 - Royi Namir
3
请确保您的代码中不要重新定义 location 变量。或者更好的做法是使用 document.location.reload() - Guillaume Poussel
我认为你应该阅读这篇关于使用 jQuery 刷新页面的教程:http://mycodingtricks.com/snippets/javascript/refresh-page-using-jquery/ - Shubham Kumar
7个回答

106
你应该使用location.reload(true),这将释放特定页面的缓存并强制加载页面作为一个页面。 true参数会强制页面释放其缓存。
更新:
由于window.location.reload(true)已被弃用。你可以使用: window.location.href = window.location.href;

这对我没有用。只有这个可以:window.location.href=window.location.href;(来源:Satpal)。 - Yster

10

如果您的按钮正在从AJAX调用中加载,您应该使用

$(document).on("click", ".delegate_update_success", function(){
    location.reload(true);
});

而不是

$( ".delegate_update_success" ).click(function() {
    location.reload();
});

还要注意location.reload函数的true参数。


8
使用 document.location.reload(true) 这个方法可以使页面不从缓存中加载。

6

您还可以使用window.location.href=window.location.href;来实现此操作。


2
没有其他方法对我起作用。谢谢Satpal。 - Yster
1
@Satpal,你的答案对我有用。你能逐行解释一下这段代码吗?谢谢。你真的很有帮助。 - Erik Åsland

4

将此行简单地放在您的头部中,使用

       window.location.reload(true);

它会加载您当前的页面或视图。

-1
使用 window.location.href = url

-1

简单的方法可以是 -

只需使用 href="javascript:location.reload(true);

你的答案就是

location.reload(true);

谢谢


这不是一个比被接受的答案更理想的解决方案。 - Sebastian Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接