基本上,我试图弄清楚的是,在诸如Facebook这样的网站上,诸如“您可能认识的人”等边栏在加载时动态生成。如果您导航到另一个页面,然后使用浏览器,请单击历史中的“返回”,带有动态内容的侧面板与第一次查看它们时的侧面板相同。如何从历史记录加载不运行PHP?
在我的网站上,当您回到浏览器历史记录中时,我的动态内容与第一次说明时不同,但PHP运行并在页面上放置了新的动态内容。
如果用户点击“历史记录”中的“后退”或“前进”,如何跳过运行PHP/SQL查询?
这里是AJAX调用我提出:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: 'post',
url: '/ajax/ajax_common.php',
async: true,
cache: true,
data: { [data here] },
success: function(data) {
$('#photos').html(data);
}
});
});
它得到的数据,但是当我去到另一个页面,点击返回它的变化,并没有保存到缓存中。 AJAX查询调用一个生成一些随机照片的函数。
请记住,Facebook使用AJAX的99%的内容。也就是说,您看到的“缓存”只是预取的信息,可以重新加载。机会是你的后退按钮正在发出全新的请求,而不是回到AJAX请求队列中。 –
您需要为脚本设置正确的Expires头,以便浏览器缓存结果。 –
这是否会鼓励使用memcache? Facebook是一个例子,还有很多其他的网站都这样做。 – Fase