在GWT中打开新页面或重定向页面的最佳做法是什么?

时间:2014-03-20 10:53:38

标签: gwt gwtp

有一些选项可以在GWT中打开新页面或重定向页面,&我不知道哪一个最好?

- 选项1:将当前页面重定向到新页面,但不会打开新选项卡。

String url = Window.Location.createUrlBuilder().setHash("!search").buildString();
Window.Location.assign(url);

- 选项2:在新标签页上打开新页面。

String url = Window.Location.createUrlBuilder().setHash("!search").buildString();
Window.open(url, "_blank", null);

- 选项3:将当前页面重定向到新页面,但不会打开新选项卡&保留上一页的状态

PlaceRequest request=new PlaceRequest(NameTokens.search);
placeManager.revealPlace(request);

选项1& 2,似乎系统开始重新加载整个页面。对于选项2,如果按Back按钮,则会再次重新加载上一页。

在选项3中,它似乎没有重新加载整个页面(即如果你有一个标题,那么它不会再次下载标题)。因此,它运行得非常快。如果单击Back按钮,则无法重新加载上一页,因此您仍可以查看上一页的所有现有状态。

选项3非常快。但是,我们需要在上一页中正确地重置一些变量,否则会使事情变得非常混乱和容易出错。

在GWT中打开新页面或重定向页面的最佳做法是什么?我们应该使用哪个选项?

1 个答案:

答案 0 :(得分:1)

选项1

每当您重新加载页面时,您的应用也必须重新加载。它可能会很快发生,因为浏览器会缓存您的代码和其他静态元素,但有什么意义呢? GWT用作" app":它位于单个主机页面中,并根据用户指令更改其状态。

Window.Location.assign(url)仅在用户离开您的应用程序时使用:要么是因为此用户已注销,要么是因为他尚未登录,并且您将其重定向到登录页面。

选项2

通常,当您提供指向其他应用程序/网站的链接时,会使用此选项,并且您希望保持应用程序正常运行。

选项3

在此选项中,您不会重定向" "页面&#34 ;.你展示了不同的观点"给用户。网页(主页)始终保持不变。这就是GWT的工作方式。