网站性能:从 cookie 到本地存储

Posted

技术标签:

【中文标题】网站性能:从 cookie 到本地存储【英文标题】:website performance: from cookies to local storage 【发布时间】:2018-09-28 01:21:56 【问题描述】:

我为一个 Wordpress 网站创建了一个插件。根据用户是否访问过(重要的)子页面,该插件会在网站标题中显示个性化信息 - 在每个页面和页面加载中。

过去我使用了一个 cookie 来存储这些信息。但我了解到 cookie 的这种特殊用法会阻止缓存,从而降低我的网站性能

现在我正在尝试使用本地存储实现相同的功能。

问题:使用本地存储和通过 jQuery 在网站上呈现用户特定信息也会减慢我的网站速度吗?或者我会看到更好的网站性能吗?

【问题讨论】:

如果每个用户都是动态的,缓存不是一个选项。 您将他们访问特定页面的数据存储了多长时间?这是每个会话,只有他们登录时?每个用户一次? 当我使用 cookie 时,我将数据存储了 30 天。不过如果少一点就好了。如果每个窗口关闭后数据都过期,那不是最好的情况 您将看到非常巨大的好处,并且更容易处理:localStorage.setItem('entry', 'value')localStorage.getItem('entry') 直截了当! ;) 您可以像这样存储许多 Gb。需要 10% 的空硬盘来开发,否则您的浏览器可能会在没有警告的情况下完全跳过它。最好知道! 使用 localStorage 并没有真正改变性能。您正在改变的重要的是您如何获取用户信息,而不是您如何存储它。通过 ajax 调用检索用户数据,独立于主页,您正在改进一些事情:1)您不会在每个页面请求上发送数据(通过 cookie)。 2) 您允许缓存这些文档(并允许缓存用户数据请求),3) 您正在针对您的需要发出专门的请求,因此您不会发出多余的请求来实现多项目标。 【参考方案1】:

如果服务器不需要数据并且没有敏感信息,可以将数据存储在客户端。它将减少请求和响应的大小,从而减少服务器负载和响应时间。它不会影响缓存,因为您的 wordpress 页面无论如何都是动态的,如果没有缓存插件,可能根本不会缓存。

【讨论】:

我想使用缓存。有多个可以缓存的静态页面,包括主页——这对于缓存来说非常重要。通过 php 代码检查 cookie 值是否存在,我想我什至可以防止静态页面被缓存 必须明智地使用缓存。如果您更改任何缓存动态页面上的内容,它不会立即到达所有用户。个性化信息最终会发生变化,因此不希望缓存显示这些信息的页面。您使用这种缓存的原因是什么? 解释得更好一点:当用户访问网站的重要子页面时,菜单项应该是可见的。如果用户没有访问子页面,我基本上想隐藏这个菜单项。这可以通过 localStorage 和 jQuery 轻松实现。所以,我当然希望服务器缓存网站,但我不太确定这种 jQuery / localStorage 使用是否会阻止正确缓存 如果您仍然想缓存页面,那么不,您的“jQuery 本地存储”解决方案不会阻止缓存。但这没有任何意义,因为您可以在服务器上呈现数据而无需使用本地存储或 cookie 来存储它,因为无论如何它都会被缓存 - 无论是否打印数据。 // 编辑:我的错,如果您只想显示一次菜单,这是有道理的。但你应该问问自己——这是一个好的设计吗?它有什么帮助?

以上是关于网站性能:从 cookie 到本地存储的主要内容,如果未能解决你的问题,请参考以下文章

为啥大型网站不喜欢本地存储而不是 cookie? [复制]

常用的本地存储-----cookie篇

本地存储和cookie

本地存储

客户端存储

H5本地存储(转)