GWT中的硬刷新

时间:2013-04-30 15:37:41

标签: java gwt web-applications

使用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

3 个答案:

答案 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替换。