html5 – Google Chrome Prerender中的“Cookie冲突”

前端之家收集整理的这篇文章主要介绍了html5 – Google Chrome Prerender中的“Cookie冲突”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在使用Chrome的预呈现功能
<link rel="prerender" href="/path" />

但是在lates更新之后,当我尝试使用[chrome:// net-internals / #prerender]进行调试时.它表明,由于“Cookie冲突”,预渲染已中止.

我尝试调试以确保在页面加载后是否有一些ajax调用正在更改cookie,但没有找到.预渲染仍然中止.它曾经与以前的chrome版本一起工作得很好.

解决方法

你看到的是由于cookie冲突.

例:

假设a.com使用cookie greeting = …来表示用户想要问候的问候语.
假设问候语设置为“你好”.
我们预呈现a.com/a.html,呈现“greeting = hello”.当服务器生成a.html时,它将从网页上的cookie中发出“hello”,这是正在预呈现的.
现在,在显示预呈现之前,假设a.com上的某个其他页面更新问候语“greeting = howdy”
接下来,假设用户导航到a.com/a.html. prerender将被交换.但是,它看到了“问候”cookie的不同版本而不是现在的值.因此,页面仍然显示“你好”,而不是(更新)“你好”.

在内部,它跟踪预呈现期间暴露的所有cookie(在HTTP头或javascript中).如果在显示预渲染之前修改了其中任何一个,则它会使预渲染失效.

这种失效就是你观察到的.

猜你在找的HTML5相关文章