有一些选项可以在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中打开新页面或重定向页面的最佳做法是什么?我们应该使用哪个选项?
答案 0 :(得分:1)
选项1
每当您重新加载页面时,您的应用也必须重新加载。它可能会很快发生,因为浏览器会缓存您的代码和其他静态元素,但有什么意义呢? GWT用作" app":它位于单个主机页面中,并根据用户指令更改其状态。
Window.Location.assign(url)
仅在用户离开您的应用程序时使用:要么是因为此用户已注销,要么是因为他尚未登录,并且您将其重定向到登录页面。
选项2
通常,当您提供指向其他应用程序/网站的链接时,会使用此选项,并且您希望保持应用程序正常运行。
选项3
在此选项中,您不会重定向" "页面&#34 ;.你展示了不同的观点"给用户。网页(主页)始终保持不变。这就是GWT的工作方式。