我有一个社交网络类型网站(会员网站)我在用户登录时将很多用户数据(如用户名,用户ID号,电子邮件,名字,照片URL)存储到用户会话中以减少ammount每页数据库查询数。我有时会听到人们谈论使用cookie进行某些事情,我发现cookie绝不应该用于用户名/密码,但主要问题是,cookie是否会减慢页面加载时间?在用户的主页上,我有用户可以拖放的块来重新排列主页,我的第一个版本我将块的位置存储在cookie中,我现在将这个值存储在mysql中并构建块的位置在页面加载php而不是使用JavaScript来设置初始位置。当我第一次使用cookie来设置位置虽然页面会加载并且块将位于原始位置,然后页面将真正快速地从cookie中获得的值更改这些块的位置,但这是非常多的较慢并使页面看起来加载速度很慢。我一直认为饼干从那时起很慢,但也许不是饼干减慢它的速度。
Cookie会降低页面速度吗?
答案 0 :(得分:3)
Cookie只是一个带键/值对的额外HTTP标头。解析该标头并填充$ _COOKIE数组不会增加显着的开销(它几乎肯定不会成为瓶颈)。
如果你在cookie中存储了大量数据(即,不仅仅是会话ID),那么值得记住的是,这些数据会随着对域的每个请求一起发送,不仅仅是针对PHP页面而是针对图像, CSS,JS等。出于这个原因,在高流量站点中,您可以安排从不同的域提供这些“静态”元素,以减少这种开销的影响。
如果该cookie值是会话标识符,那么PHP需要从文件系统,数据库或其他存储机制中检索该会话以填充$ _SESSION数组。这可能需要增加一点时间,但这实际上取决于所使用的机制。
答案 1 :(得分:2)
Cookie会略微增加您网页的加载时间,因为必须在每次请求时发送Cookie数据。
对于HTML页面,这不会产生太大的影响,但如果您将所有资产放在同一个域中(通常情况下),则可能会产生显着差异。
实际上在PHP中阅读cookie不应该花费相当多的时间。
答案 2 :(得分:2)
如果我理解正确,那么你说你的页面很慢:
我认为“慢”部分不是来自cookie:
但是,通过这种解决方案,可能导致缓慢印象的是:
恕我直言,是什么让你的页面“更快”现在是客户端接收整个页面已经很好定位的块 - 这意味着在页面加载时根本没有处理: - )
较小/不存在的cookie可能会产生一些小差异......但很小。
如果您想了解更多关于cookie大小及其对加载时间的影响以及一些建议,您可以阅读雅虎的这篇文章:Performance Research, Part 3: When the Cookie Crumbles;这是一个非常有趣的阅读,并不难理解。