【问题标题】:History management (Refresh Button)历史管理(刷新按钮)
【发布时间】:2011-03-26 07:08:09
【问题描述】:

请给我一些关于 GWT 中数据管理的想法。我在我的旅行门户项目中使用 Gwt,我的网页与前一页数据相关,但是当我按下浏览器的刷新按钮时,我的数据丢失了。所以请告诉我是否有任何方法可以解决这个问题。

【问题讨论】:

    标签: gwt button browser refresh gwt-history


    【解决方案1】:

    GWT History 类不能用于管理页面刷新(只能后退/前进)。

    单击刷新按钮向服务器发送请求,然后从服务器重新加载应用程序的状态。就这样。你必须处理它。

    如果您不想丢失数据,则必须找到一种方法在需要时将其保存在服务器上。

    【讨论】:

      【解决方案2】:

      如果您的用户使用现代浏览器,您可以使用 HTML5 功能 localStorage 在页面刷新之间将数据存储在浏览器中。

      检查this线程以获取支持的浏览器。

      【讨论】:

        【解决方案3】:

        您可以创建一个 url 片段来对您的数据进行编码。

        字符串位置 = "ny"; History.newItem("location="+location);

        将产生 www.example.com#location=ny 的 url 片段

        然后如果刷新浏览器,就可以解码url片段,确定位置是ny。

        对于多个参数,您可以创建一个复杂的片段并对其进行解析。

        History.newItem("start="+startLocation+"&end="+endLocation); 然后网址看起来像 www.example.com#start=newyork&end=boston

        【讨论】:

          【解决方案4】:

          基本思想是在URL fragment(#之后的URL部分)中存储一些状态——例如your-site.com/app#page-1

          要监听片段的变化,请使用 GWT 的 History 类。当用户返回/前进或刷新页面时,片段会发生变化。

          因此,当 URL 包含 #page-1#page-2 等时,您可以让您的应用执行不同的操作。

          对此更通用和可扩展的解决方案类似于gwt-platformPlace 架构(以及Presenter,这对于大型应用程序来说也是一个好主意)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-05-22
            • 2019-04-04
            • 1970-01-01
            • 2019-08-25
            • 2012-11-14
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多