在 Ajax Web 应用程序中,是否有标准的或公认的从页面刷新中恢复的方法?
我现在的兴趣主要在于具有 Java(JSP/Servlet)后端的 Web 应用程序。我的页面最初是从 JSP 呈现的,然后用户使用 javascript 事件通过界面进行。
是否有涵盖此的设计模式,我假设刷新按钮是 Web 开发人员需要经常担心的问题,因此应该有一种方法可以从中恢复,同时保持状态。
在 Ajax Web 应用程序中,是否有标准的或公认的从页面刷新中恢复的方法?
我现在的兴趣主要在于具有 Java(JSP/Servlet)后端的 Web 应用程序。我的页面最初是从 JSP 呈现的,然后用户使用 javascript 事件通过界面进行。
是否有涵盖此的设计模式,我假设刷新按钮是 Web 开发人员需要经常担心的问题,因此应该有一种方法可以从中恢复,同时保持状态。
有很多方法可以处理这个问题。
#inbox/123
这意味着它应该显示123
带有标签收件箱的电子邮件 ID。这不是很有表现力,对简单的状态很有用。但是,它确实为用户提供了为页面添加书签和使用浏览器历史记录导航的能力。我的建议是为服务器端的每个用户保留一个状态机,通过 AJAX 调用更改状态。这样在刷新时,您就已经知道用户处于哪个状态位置,从而可以从中恢复。
如果您在编码时不小心,这可能会给您带来可伸缩性问题。
另一种解决方案可能是将状态变量存储在 cookie 中(假设用户有活动的 cookie)。在页面加载时,状态变量将提交给您的 Web 应用程序,让您恢复。
这是我们在项目中使用的一种解决方案:
您在用户访问页面时为页面分配一个序列号/随机 guid。您可以将其放入 url 的 get 部分(例如 yourpage.jsp?pid=1337 其中 1337 是页面查看序列号)
当您处理 AJAX 请求时,您在会话中的服务器端维护页面状态的“镜像”,或者您可以在 JSP 中使用的任何机制来存储状态。
当用户请求页面时,您检查给定的序列号是否已经存在,如果存在,则表示这是一次刷新,因此您使用会话中的镜像数据呈现页面。