好吧我打算用完整的ajax请求制作小网站。登录,注册所有异步请求。好吧,当用户刷新网站时,问题就出现了以前所做的所有动作都会丢失。如何防止这种情况,使用什么?
答案 0 :(得分:1)
有多种方法可以保护您网站的状态:
有些库可以为您处理此问题。 Backbone.js会自动为您处理历史记录。
Can I Use是检查浏览器功能支持的绝佳参考源。
答案 1 :(得分:0)
如何更改每个Ajax操作的页面URL。现在Chrome,Firefox支持在不刷新页面的情况下更改URL。通过这种方式,您可以继续以AJAX方式进行操作,并且URL每次都会不断更改,但页面不会刷新。当用户尝试手动刷新它时,当前URL将有助于识别状态。
有关在不刷新页面的情况下更改URL的详细信息请查看this
答案 2 :(得分:0)
根据实施情况,很可能所有客户端数据都将丢失。如果至少某些数据持久存储在服务器上,则可以让客户端使用某个会话令牌重新请求数据。客户端越薄,服务器上的数据就越多,从而有效地将用户体验完全恢复到刷新前的状态。
完整的ajax网站的相关问题是如何处理浏览器。对于ajax-heavy网站,您将需要使用jQuery BBQ(http://benalman.com/projects/jquery-bbq-plugin/)等javascript库。这个库也会处理你刷新的一些问题我相信,因为它有效地用锚引用标记你的应用程序的每个“状态”。
对于客户端数据持久性,您可以查看Flash共享对象或JavaScript cookie。 HTML5还允许人们有其他选项(http://www.html5rocks.com/en/features/offline)。请注意您存储的内容,因为Web应用程序安全性可能是一个潜在的问题。
答案 3 :(得分:0)
你将在某个地方坚持你的页面状态,无论是在cookie中(我不会这样做,它不可靠),或者在服务器端的用户会话中,或者可能使用html 5本地存储(可以不要告诉你太多关于这件事的事情;我从来没有用过它。然后,当有人刷新时,应该有初始化代码来初始化您的页面。这是很多工作,但如果你把它组织得很好,那肯定会有用。