如何使用 php/jquery 实现持久页面?
Posted
技术标签:
【中文标题】如何使用 php/jquery 实现持久页面?【英文标题】:How to implement persistent page using php/jquery? 【发布时间】:2011-12-04 01:44:37 【问题描述】:您在页面的不同区域加载了包含大量 ajax 内容的页面 display.php。 用户在页面内部单击,ajax 内容的某些部分发生了变化。现在当用户 单击浏览器上的重新加载按钮,它将丢失从 ajax 请求加载的内容。
如何保留 ajax 加载的所有信息?非常感谢。
【问题讨论】:
您可以将数据存储在会话中。 我希望有人已经为此功能创建了一个库。我想一种选择是@krister-andersson 建议或将所有发生在该 ajax 内容/小部件上的事件存储在数据库中并与当前用户相关联。 会话和hashbang uri的组合。 (基本上使用哈希标签来表示客户端正在访问的 URL,使其易于重新引用/可调用) 我正在使用一个干净的 uri @Brad 我想通过在会话中存储“控制器/方法/参数/值”并将键分配给该 ajax 容器来解决问题。谢谢 【参考方案1】:你有两个选择:
将信息存储在 localStorage(在 javascript 中), 在服务器上存储信息,例如。使用服务器会话,加上一种额外的可能性(如果适用于您的情况):
使用pushState
和 onpopstate
支持 URL 更改而不向服务器请求(或者使用 onhashchange
解决),
【讨论】:
【参考方案2】:您也可以使用location hash。
在 ajax 调用运行时在位置哈希上写一些东西。因此,当您重新加载页面时,$(document).ready
上的您可能会读取该哈希并使用 ajax 调用再次加载数据。
这种方法有一点,您可以与其他人共享 url#hash 作为该数据的链接。它不依赖于您的session
或您的localStorage
。
【讨论】:
【参考方案3】:克里斯特说得对。将更改存储在会话变量中,并在 $(document).ready 上有一个调用函数来检查会话变量。 ;)
【讨论】:
以上是关于如何使用 php/jquery 实现持久页面?的主要内容,如果未能解决你的问题,请参考以下文章