使用Google Web Toolkit,我想编写相当于hard refresh (control + F5)
的代码。
我不相信(或知道)GWT的Window.Location
是否有效。
import com.google.gwt.user.client.Window.Location;
Window.Location = currentPage; // I don't think it'll be hard refresh
答案 0 :(得分:9)
要重新加载当前页面,您需要调用Window.Location.reload()方法。
重新加载当前的浏览器窗口。所有GWT状态都将丢失。
或者您甚至可以指定自己的JSNI(低于todo),因为默认情况下force reload is false:
public static native void forceReload() /*-{
$wnd.location.reload(true);
}-*/;
答案 1 :(得分:4)
根据https://developer.mozilla.org/en-US/docs/DOM/window.location#Methods,您需要致电window.location.reload(true)
以强制重新加载当前页面。
不幸的是,GWT仅通过window.location.reload()
包装Window.Location.reload()
,并且由浏览器从缓存或另一个get中检索页面。这样做是为了实现最多的跨浏览器解决方案。
从未尝试过,但您应该可以使用以下内容。
public static native void reload(boolean force) /*-{
$wnd.location.reload(force);
}-*/;
答案 2 :(得分:1)
对于重装gwt页面,您有两个选择:
1) Window.Location.reload();
重新加载当前的浏览器窗口。所有GWT状态都将丢失。
2) Window.Location.replace(“newurl”);
用新的URL替换当前的URL。所有GWT状态都将丢失。在浏览器的历史记录中,当前URL将被新URL替换。