完整的基于ajax的页面的概念

时间:2012-03-17 08:35:51

标签: javascript html ajax

好吧我打算用完整的ajax请求制作小网站。登录,注册所有异步请求。好吧,当用户刷新网站时,问题就出现了以前所做的所有动作都会丢失。如何防止这种情况,使用什么?

4 个答案:

答案 0 :(得分:1)

有多种方法可以保护您网站的状态:

  1. 将信息存储在Cookie中;
  2. 将信息存储在URI哈希片段中,也称为深层链接;
  3. 在localStorage中存储信息,并非所有浏览器都支持此功能;
  4. 将信息存储在window.history.pushState中,并非所有浏览器都支持此功能;
  5. 有些库可以为您处理此问题。 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本地存储(可以不要告诉你太多关于这件事的事情;我从来没有用过它。然后,当有人刷新时,应该有初始化代码来初始化您的页面。这是很多工作,但如果你把它组织得很好,那肯定会有用。