我有一个查询大型数据库的网站。生成页面需要一段时间(3-10 秒(。这对用户来说没有问题,但我想显示一条友好的消息,而不是用户只是坐在一个没有变化的页面前面。所以我所做的是,当用户单击任何特定链接时,我会显示一个引导模式,说"请稍候,我们正在加载您的页面"。这很有效。模态显示在页面上,当服务器生成新页面时,它将打开,模态明显消失。
问题是当用户导航到另一个链接(再次在页面上看到模式(然后向后移动时。现在显示上一个模式。请参阅下面的概述:
- 页面 A:立即加载 点击页面B的链接
- ,模态显示:"请等待B"。
- 显示第 B 页。
- 单击指向页面 C 的链接,模态显示:"请等待 C"。
- 显示第 C 页。
- 用户单击"返回"按钮转到页面 B。页面 B 的最后一个"模式"在模态中显示"请等待 C"消息,因为那是它结束的地方。内容显然已经加载(从浏览器缓存(。
如何解决这个问题?
设置此标头
header("Cache-Control: private, must-revalidate,
max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
);
另请参阅: 如何击败浏览器后退按钮缓存