历史管理(刷新按钮)
请给我一些关于 GWT 中数据管理的想法。我在我的旅游门户项目中使用 Gwt,我的网页与之前的页面数据相关,但是当我按下浏览器的刷新按钮时,我的数据就会丢失。所以请告诉我是否有任何方法可以解决这个问题。
Please give me idea about the management of data in GWT. I am using Gwt in my travel portal project and my web pages is related to previous page data but when i press the refresh button of browser's then my data is lost . so please inform me if there is any way to manage this problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
GWT History 类不能用于管理页面刷新(只能后退/前进)。
单击刷新按钮会向服务器发送请求,并从服务器重新加载应用程序的状态。就这样。你必须处理它。
如果您不想丢失数据,则必须找到一种方法在需要时将其保存在服务器上。
GWT History class cannot be used to manage page refresh (only back/forward).
A click on the refresh button send a request to the server and the state of the application is reloaded from the server. That's all. You have to deal with it.
If you don't want to lose your data, you have to find a way to save it on the server when it's needed.
如果您的用户拥有现代浏览器,您可以使用 HTML5 功能 localStorage 在页面刷新之间存储浏览器中的数据。
检查此线程支持的浏览器。
If your users have modern browsers, you can use the HTML5 feature localStorage to store the data in the browser between page-refresh.
Check this thread for supported browser.
您可以创建一个 url 片段来编码您的数据。
字符串位置=“ny”;
History.newItem("位置="+位置);
将得到 www.example.com#location=ny 的 url 片段。
然后,如果刷新浏览器,您可以解码 url 片段并确定该位置是 ny。
对于多个参数,您可以创建一个复杂的片段并解析它。
History.newItem("start="+startLocation+"&end="+endLocation);
那么网址将类似于 www.example.com#start=newyork&end=boston
You can create a url fragment to encode your data.
String location = "ny";
History.newItem("location="+location);
will result with a url fragment of www.example.com#location=ny
Then if the browser is refreshed, you can decode the url fragment and determine that the location is ny.
For multiple parameters you can create a complex fragment and parse it.
History.newItem("start="+startLocation+"&end="+endLocation);
Then the url would look like www.example.com#start=newyork&end=boston
基本思想是在 URL 片段 中存储一些状态(URL 中位于#) -- 例如
your-site.com/app#page-1
要侦听片段的更改,请使用 GWT 的
历史
类。当用户后退/前进或刷新页面时,片段将发生变化。因此,当 URL 具有
#page-1
与#page-2
等时,您可以让您的应用执行不同的操作。对此更通用且可扩展的解决方案类似于gwt-platform 的 Place 架构(与 Presenters 一起,对于大型应用程序来说也是一个好主意)
The basic idea is to store some state in the URL fragment (the part of the URL after the #) -- for example
your-site.com/app#page-1
To listen for changes to the fragment, use GWT's
History
class. The fragment will change when the user goes back/forward, or refreshes the page.So you could have your app do different things when the URL has
#page-1
vs#page-2
, etc.A more generalized and scalable solution to this is something like gwt-platform's Place architecture (along with Presenters, which are also a good idea for large apps)