2个不同的POST->ID仅用于在Firefox中加载单个页面

时间:2012-01-26 作者:ShuQi

我将post->ID保存在会话数组中,以保存特定自定义post类型的访问页面历史记录。此代码已添加到特定自定义帖子类型的模板中,因此会话数据只会更新此类型的请求。

因此,如果用户加载postID为1的页面,则会话中会保存“1”。如果他随后加载一个postID为5的页面,则会将“5”添加到会话中,从而生成数组(1,5),依此类推。

除了FireFox(Windows和Mac)之外,这在所有主流浏览器中都能正常工作。由于某些原因,初始会话被正确保存,但下次我重新加载同一页面时,它会突然显示例如array(1,5),即使只访问了postID 1。

我在脚本中添加了日志记录,以便在会话数据更新时进行日志记录,当时我注意到,由于某些原因,FireFox在加载实际帖子之前会发送部分请求(比整页加载更快),例如:

用户用postID 1加载页面,会话用array(1)更新,用户点击reload,FireFox加载postID 5,然后再次加载postID 1,导致array(1,5)这个额外的页面加载不可见,也不会显示在Firebug中,但FireFox会发送这些多个页面请求,即使只是重新加载一个页面。

我已经排除了该代码,因为它在所有其他浏览器中都可以正常工作,而且我还禁用了所有插件/插件,但即使在普通的FireFox中也会出现这种情况。此外,它是跨平台的,在mac&;上也是如此;使用FireFox时使用windows PC。

以前有没有人经历过类似的问题?

1 个回复
最合适的回答,由SO网友:ShuQi 整理而成

当然,在提交后,我立即找出了问题的原因:

这个问题是由FireFox在后台预取另一篇帖子引起的,导致那些注意到每个页面请求有两个不同帖子的人。

如果禁用预取,那么它的行为将与预期的一样,因此需要添加代码来检查FireFox发送的预取标头,并避免在这种情况下更新会话数据
有关FireFox预回迁的更多信息,请参阅此处:http://developer.mozilla.org/en/Link_prefetching_FAQ

结束

相关推荐

Multi-site User Sessions

我有一个客户想要创建几个WordPress站点,并在顶部使用一个“站点切换器”,有点像前面的。网我知道在WP 3中,您可以在同一个安装上创建多个博客,但如何让登录到一个博客的用户登录到WordPress安装中的所有博客?这可能吗?