单击后退按钮时如何正确显示 ajax 填充页面

Posted

技术标签:

【中文标题】单击后退按钮时如何正确显示 ajax 填充页面【英文标题】:How to properly display an ajax-filled page when Back Button is clicked 【发布时间】:2011-12-24 23:31:09 【问题描述】:

我有一个页面调用“mycontent.html”。当用户访问该页面的 url 时,该页面的模板由服务器返回。特别是:

<body>
...
<div id="content1"> </div>

<div id="content2"> </div>
... 

</body>

然后有一个 Ajax 回调到服务器以获取 2 个 div 的内容。 (我知道这是低效的,但让我们假设我们现在需要接受它。主要原因是显示函数以前是用 javascript 编写的)。

到目前为止,一切正常。

然后,如果用户单击“mycontent.html”中的链接到另一个页面,然后从该新页面单击浏览器的返回按钮,就会出现问题。

你猜怎么着,它不是显示“整个漂亮的页面”,而是显示服务器返回给上述 Ajax 调用的 json 字符串。

所以我在这方面寻求您的帮助。我的目标是在我仍然必须使用 Ajax 调用来加载内容的上下文中获得更好的用户体验。任何满足这一点的都可以。

提前非常感谢。

【问题讨论】:

【参考方案1】:

看来我看到了这篇关于将 python obj 转换为 JS 的帖子:Django Template - Convert a Python list into a JavaScript object

Ajax 的最初目的是因为渲染是用 JS 编写的。现在使用这种方法,我仍然可以使用 JS 进行渲染,但不是通过 AJAX,而是通过将服务器直接发送的数据转换为 JS。

感谢小伙子的阅读。

【讨论】:

以上是关于单击后退按钮时如何正确显示 ajax 填充页面的主要内容,如果未能解决你的问题,请参考以下文章

Flutter单击后退按钮时如何执行

在我的 AJAX 应用程序中拦截对后退按钮的调用

使用浏览器后退按钮时如何强制重新加载页面?

用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?

CodeIgniter Log Out 在单击后退按钮或键入快捷链接时注销后仍然可以访问该页面

使用带有 AJAX 表单的后退按钮?