如何使用 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 中), 在服务器上存储信息,例如。使用服务器会话

加上一种额外的可能性(如果适用于您的情况):

使用 pushStateonpopstate 支持 URL 更改而不向服务器请求(或者使用 onhashchange 解决),

【讨论】:

【参考方案2】:

您也可以使用location hash。 在 ajax 调用运行时在位置哈希上写一些东西。因此,当您重新加载页面时,$(document).ready 上的您可能会读取该哈希并使用 ajax 调用再次加载数据。

这种方法有一点,您可以与其他人共享 url#hash 作为该数据的链接。它不依赖于您的session 或您的localStorage

【讨论】:

【参考方案3】:

克里斯特说得对。将更改存储在会话变量中,并在 $(document).ready 上有一个调用函数来检查会话变量。 ;)

【讨论】:

以上是关于如何使用 php/jquery 实现持久页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何实现持久(非刷新)页面元素?

php+JQuery+Ajax简单实现页面异步刷新

php+JQuery+Ajax简单实现页面异步刷新

如何保持 Pusher Client 对象跨页面持久化?

如何刷新页面并保持元素不刷新(持久),直到用户单击提交?

PHP/jQuery - 当 PHP 语句为真时如何使用 jQuery 播放 mp3 音频文件