8

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

3 回答 3

9

要重新加载当前页面,您需要调用Window.Location.reload()方法。

重新加载当前浏览器窗口。所有 GWT 状态都将丢失。

或者你甚至可以指定你自己的 JSNI(下面是如何做的),因为默认情况下force reload 是 false

  public static native void forceReload() /*-{
      $wnd.location.reload(true);
    }-*/;
于 2013-04-30T15:40:09.823 回答
5

根据https://developer.mozilla.org/en-US/docs/DOM/window.location#Methods,您需要调用window.location.reload(true)以强制重新加载当前页面。

不幸的是,GWT 仅包装window.location.reload()via Window.Location.reload(),并且由浏览器从缓存或另一个 get 中检索页面。这样做是为了实现最跨浏览器的解决方案。

从未尝试过,但您应该能够使用以下内容。

public static native void reload(boolean force) /*-{
  $wnd.location.reload(force);
}-*/;
于 2013-04-30T15:50:18.233 回答
1

对于重新加载 gwt 页面,您有两种选择:

1) Window.Location.reload();

重新加载当前浏览器窗口。所有 GWT 状态都将丢失。

2) Window.Location.replace("newurl");

用新的 URL 替换当前 URL。所有 GWT 状态都将丢失。在浏览器的历史记录中,当前 URL 将被新 URL 替换。

于 2013-04-30T16:15:10.473 回答