2011-07-26 187 views
3

首先让我说我的标题不完全解释我的意思。问题是我创建了一个jQuery表来显示视频记录。在表格中有一个指向视频记录显示页面的链接。我在显示页面<a href="javascript: history.go(-1)"></a>上有一个链接,让我回到带有jQuery的结果页面。这个页面载满了javascript,包括对话框,每当我链接回这个页面时,它会在加载时重新加载并显示对话框内容,然后将它从屏幕上移除。我想知道是否无论如何重定向回缓存页面或其他方法来减少加载的数量,因此在加载过程中不会显示不必要的信息。请谢谢你的帮助。返回链接不刷新

+3

。你的后退按钮不应该尝试使用'history.go',它应该是一个链接回逻辑上是当前页面的父页的任何页面。你不能依赖'历史'的顺序;用户可能已经从书签加载了您的页面,或者禁用了历史记录/缓存。 – meagar

回答

2

检查您的PHP页面发送的HTTP响应头。如果它告诉浏览器不要缓存页面,那么它可能会迫使浏览器不必要地重新加载。默认的PHP头文件通常会告诉浏览器不要缓存。检查的方法之一是通过使用curl命令行:

curl --head http://your.domain/foo.php 

这告诉你只有你的页面会发送标题。像ExpiresCache-ControlPragma这样的标题涉及浏览器缓存。举例来说,在我的网站的一个典型的PHP页面有如下标题:

HTTP/1.1 200 OK 
Server: nginx/1.0.4 
Date: Tue, 26 Jul 2011 15:51:53 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
Keep-Alive: timeout=20 
Set-Cookie: PHPSESSID=osumsgkcn7c1rb8udba33epek6; path=/ 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
+0

关于第二个想法,我完全同意上面的@ meagar的评论,关于根本不使用'history.go()'。但是如果你仍然想使用它,头部是我会检查解决你的问题的第一件事。 – curtisdf

+0

我只使用history.go(),因为我认为这会帮助我点击后退链接后重新加载页面的问题。我只想返回到前一页,而无需重新加载所有的JavaScript/jQuery。可能? –

+0

如何使用JavaScript设置一些cookie以保留后续重新加载页面的状态? jQuery有一个'jquery.cookie.js'插件,可以很容易地与cookie进行交互。 – curtisdf

0

OK,一个看到您的方案方式:

1 - 是你要求使用AJAX/JSON

做网页

2 - 你有办法来存储加载的最后一页上的内容

,因此您可以:

1 - 使用AJAX + JSON加载当前页面,并存储警察它在一个变量上(当前)

2 - 当用户点击一个链接(将他发送到另一个页面)时,当前页面(json)的内容存储在一个变量(又名缓存) ,并且新的json覆盖当前的变量值。当用户点击后退链接时,页面验证缓存变量是否有任何值,如果是,则加载该变量,否则从服务器调用内容。

这是基于我在这里实现了例如极简主义的想法:你不应该依赖东西,像浏览器的缓存功能http://neogamabbh.com.br/en