0

我很享受学习 AJAX 的经历,但我正在挑选一些关于何时实际使用它的评论不一的文章。

我的问题是——如果有人刷新页面,你会怎么做?我丢失了所有已处理和返回的 ajax 信息,并放置在 div 和 span 占位符中。

您如何保持该状态或ajax调用或全部重置???也许我不应该在登录页面上执行 ajax,或者有没有办法在不设置大量 cookie 的情况下保留设置?

我有代码,但它非常适合放在窗口中,我认为最好问问是否有这样的方法来保留所有的 ajax 工作,或者是否必须通过重新加载来清除它?

4

3 回答 3

2

您可以查看使用location.hashhtml5 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

于 2013-02-25T05:14:31.297 回答
1

我见过的大多数 AJAX 应用程序除了重置整个应用程序状态外,不处理页面刷新。尝试使用 Yahoo 或大多数网站。

后退和前进点击也会造成严重破坏(尽管 HTML5 确实允许捕获这些事件)。 localStorage并且sessionStorage可能也很有用。

通常,AJAX 应用程序会尝试通过弹出消息警告用户来阻止该操作(例如:Dave 你确定要这样做吗?)

要从刷新中恢复,您可能希望将应用程序状态保存在服务器上(如果有的话),并且只在 cookie 中保存指向会话 ID 的指针。

于 2013-02-25T05:10:10.950 回答
0

在正常重新加载时。很明显,您在页面中获得的任何数据都将被清除。如果你真的想要存储一些东西而不是在success functionajax 调用中制作一个 cookie,那就太疯狂了。

您还需要决定在哪里使用 ajax。因为 ajax 的主要目的是保持在同一页面上获取数据但不进行刷新。因为刷新旧数据就会消失。

我希望你得到你的答案。

于 2013-02-25T05:12:56.553 回答