我很享受学习AJAX的经验,但我正在阅读有关何时实际使用它的混合评论的文章。
我的问题是 - 如果一个人刷新页面,你会怎么做?我丢失了所有处理和返回的ajax信息,并放入div和span占位符。
你如何保持这种状态或ajax电话或全部重置?也许我不应该在登录页面上执行ajax,或者有没有办法在没有设置大量cookie的情况下保留设置?
我有代码但是它非常适合窗口,我觉得最好问一下是否有这样的方法来保存所有的ajax工作或者是否必须通过重新加载来消除它?
答案 0 :(得分:2)
您可以查看使用location.hash
或html5 pushstate
来保持数据之间的刷新。
HTML5推送状态会更改浏览器位置栏中的URL,而无需重新加载整个新页面。这使得你可以给每个阶段或说明它自己的固定链接,但是老浏览器不支持它。
Location.hash执行相同的操作,但更改了URL的哈希值,例如http://server.com/location#hash
,然后您可以使用各种库来读取此哈希值并更改页面。这具有与旧版浏览器兼容的优点。
http://benalman.com/code/projects/jquery-hashchange/docs/files/jquery-ba-hashchange-js.html
答案 1 :(得分:1)
除了重置整个应用程序状态之外,我见过的大多数AJAX应用程序都不处理页面刷新。尝试使用雅虎或大多数网站。
后退和前进点击也会造成严重破坏(尽管HTML5确实允许捕获这些事件)。 localStorage
和sessionStorage
也可能有用。
通常,AJAX应用会尝试阻止带有弹出消息的操作来警告用户(例如:您确定要执行Dave吗?)
要从刷新中恢复,您可能希望在服务器上保存应用程序状态(如果有的话),并且只在cookie中保存指向会话ID的指针。
答案 2 :(得分:0)
正常重新加载。很明显,您在页面中获得的数据将被清除。如果你真的想存储一些东西,而不是在ajax调用的success function
中制作一个cookie。
您还需要决定在哪里使用ajax。因为ajax的主要目的是使数据保持在同一页面上但不进行刷新。因为刷新旧数据将会消失。
我希望你得到答案。