PHP中Cookie与会话的页面加载时间
我有一个社交网络类型的网站(会员网站)。当用户登录时,我会在用户会话中存储大量用户数据,如用户名、用户ID号、电子邮件、名字、照片URL,以减少每页DB查询的数量。我有时听到人们谈论将cookie用于某些事情,我意识到cookie不应用于用户名/密码,但主要问题是,cookie是否会减慢页面加载时间?在用户的主页上,我有一些块,用户可以拖放这些块来重新安排主页,我的第一个版本将这些块的位置存储在cookie中,现在将该值存储在mysql中,并在页面加载时用php构建块的位置,而不是使用javascript设置初始位置。当我第一次使用cookie设置这些位置时,虽然页面将加载,块将位于原始位置,但页面将根据从cookie获得的值快速更改这些块的位置,但是这要慢得多,并且使页面看起来加载速度非常慢。从那时起,我一直认为饼干的速度很慢,但也许不是饼干让它慢了下来PHP中Cookie与会话的页面加载时间,php,cookies,Php,Cookies,我有一个社交网络类型的网站(会员网站)。当用户登录时,我会在用户会话中存储大量用户数据,如用户名、用户ID号、电子邮件、名字、照片URL,以减少每页DB查询的数量。我有时听到人们谈论将cookie用于某些事情,我意识到cookie不应用于用户名/密码,但主要问题是,cookie是否会减慢页面加载时间?在用户的主页上,我有一些块,用户可以拖放这些块来重新安排主页,我的第一个版本将这些块的位置存储在cookie中,现在将该值存储在mysql中,并在页面加载时用php构建块的位置,而不是使用javas
cookie会降低页面速度吗?cookie会略微增加页面的加载时间,因为每次请求都必须发送cookie数据 对于HTML页面来说,这不会有太大的区别,但是如果您的所有资产都在同一个域中(通常情况下),那么这会带来显著的差异
实际上,用PHP读取cookie不应该花费太多时间。cookie只是一个额外的HTTP头,带有键/值对。解析该头并填充$\u COOKIE数组不会增加显著的开销(这几乎肯定不会成为瓶颈) 如果您在cookie中存储了大量数据(即,不仅仅是会话id),那么值得记住的是,这些数据会随每个请求一起发送到您的域,不仅仅是PHP页面,还有图像、CSS、JS等。因此,在高流量站点中,您可能会安排这些“静态”要从不同域提供服务的元素,以减少此开销的影响
如果该cookie值是会话标识符,那么PHP需要从文件系统、数据库或其他存储机制检索该会话,以填充$\u会话数组。这可能需要一点时间,但这实际上取决于使用的机制。如果我理解正确,您是说您的页面在以下情况下运行缓慢:
- 块的位置存储在cookie中
- 在页面加载时,块被定位在Javascript中
- 与页面大小相比,这些页面非常小
- 是的,它增加了一些开销,但对于单个页面来说并不是那么重要
- 但是,如果您有很多资产(图像、静态文件等),那么这一点就变得更为重要,因为它们随每个请求一起发送
- 它们包含的数据不多
但是,有了这个解决方案,可能会给人留下缓慢印象的是:
- 页面在其默认位置加载块
- 执行一些JS代码来重新定位块
- 这意味着在重新定位块之前要等待一段时间
- 这需要一些处理时间来执行JS代码
- 这也意味着,对于浏览器来说,需要多次重新绘制页面(每次发生更改时)
IMHO,现在让您的页面“更快”的是,客户机接收到的整个页面中的块已经被很好地定位了——这意味着页面加载时根本没有处理:-) 较小的/不存在的cookies可能会有一点不同。。。但是很小
如果您想了解更多关于cookies大小及其对加载时间的影响,以及一些建议,您可以阅读雅虎的这篇文章:;这是一篇非常有趣的文章,也不难理解。子域可以算作在同一个域上吗?我计划在images.domain.com上放置图像和内容如果你的主网站是这样的,那么如果你的主网站是这样的,那么就不(尽管我相信你可以在子域之间共享cookies,如果你愿意的话)你是指第二个域的www.example.com吗?