Java GWT中的硬刷新

Java GWT中的硬刷新,java,gwt,web-applications,Java,Gwt,Web Applications,使用GoogleWebToolkit,我想编写相当于硬刷新(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 要重新加载当前页面,需要调用方法 重新加载当前浏览器窗口。所有GWT状态都将丢失 或者,您甚至可

使用GoogleWebToolkit,我想编写相当于
硬刷新(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

要重新加载当前页面,需要调用方法

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

或者,您甚至可以指定自己的JSNI(如下所示),因为默认情况下:

根据需要,您需要调用
window.location.reload(true)
强制重新加载当前页面

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

从未尝试过,但您应该能够使用以下选项

public static native void reload(boolean force) /*-{
  $wnd.location.reload(force);
}-*/;

对于重新加载gwt页面,您有两个选项:

1) Window.Location.reload()

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

2) Window.Location.replace(“newurl”)


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

因此
GWT
的窗口。Location.reload()不会强制重新加载吗?但是,如果使用
true
参数,JSNI代码将被删除?如果查看Window.Location.reload()方法实现,它不会使用
true
作为参数。默认情况下,它是false。是的,本地Javascript有。如果你有这样的工具类,你可以将这个静态方法添加到你的工具类中。恕我直言,你的答案不应该只包括JSNI代码吗?如果
Window.Location.reload()
没有进行硬刷新,请编辑您的答案好吗?:)它已经回答了,不需要编辑。你能看到
forceReload
这是一个JSNI。如果您不知道什么是JSNI,请检查以下内容:如果您希望像Ctrl+F5一样强制重新加载页面,则应使用my
forceReload()
。如果您只想使用F5,请使用
Window.Location.reload()
我可以问您为什么需要硬刷新吗?您是否有外部资源,或者一切都由GWT处理?因为在最后一种情况下,我不明白您为什么要强制重新加载。@AndreaBoscolo,我正在考虑添加此硬刷新,我的代码将用户重定向到一个通用错误页面。但是,我不想将它们重新定向到一般错误页面,而是希望重新定向它们以再次登录(硬刷新将实现这一点)。用户的凭据在大约15分钟后过期。我不知道如何解决根本问题,因此添加硬刷新比强制用户打开新浏览器并再次登录要好。
public static native void reload(boolean force) /*-{
  $wnd.location.reload(force);
}-*/;