我需要在客户端使我的网站更快。我想知道我过多的 Javascript cookie 操作是否会减慢浏览器的速度。它使用硬盘驱动器,这是计算机中最慢的组件。在严重碎片化的硬盘上,cookie 操作会冻结浏览器吗?
JS 是否对 cookie 写入/读取(缓存等)进行任何优化。我可以利用这些优化来改进我的网站吗?
用服务器端数据库替换客户端 cookie 是不可能的,因为我的服务器已经超载。
我需要在客户端使我的网站更快。我想知道我过多的 Javascript cookie 操作是否会减慢浏览器的速度。它使用硬盘驱动器,这是计算机中最慢的组件。在严重碎片化的硬盘上,cookie 操作会冻结浏览器吗?
JS 是否对 cookie 写入/读取(缓存等)进行任何优化。我可以利用这些优化来改进我的网站吗?
用服务器端数据库替换客户端 cookie 是不可能的,因为我的服务器已经超载。
有几种方法可以加快客户端页面的速度,尽管我猜测减少 cookie 的使用最多只能节省几微秒。总的来说,请确保您只保存您需要的内容。
但是,您可以进行大量其他优化,例如:
这些都是经过验证的减少页面加载时间的方法。
有关如何加快页面加载速度的更多信息,请获取 YSlow!firefox/firebug 插件http://developer.yahoo.com/yslow/
+1 提出一个好问题,尽管它具有可怕的含义。
任何过度的操作都可能对性能产生影响,尽管这几乎在任何情况下都是微不足道的。我不知道 JavaScript 对读/写 cookie 所做的任何优化,但大多数磁盘控制器的读/写缓存应该将这个 i/o 平滑到疏忽的程度。
为什么可怕?
Cookie 可能有大小/数量限制: http: //support.microsoft.com/kb/306070和http://en.wikipedia.org/wiki/HTTP_cookie
Cookie 可以被操纵,因此它们并不安全(除非您对其中的值进行了强加密,这当然会影响性能,并且仍然是一个坏主意)。
Cookie 有时会被禁用。
您提到您的数据库很慢,但是添加一些会话变量不会对您的数据库造成任何额外的负载。或者尝试在内存中操作客户端数据,甚至在查询字符串上传递一些变量(当然是非安全信息)。
cookie 是请求和响应标头的一部分,因此加载它们意味着加载每个请求和响应。其次,每个域最多只能有 50 个 cookie,每个 cookie 最多 4k。第三,许多用户对 cookie 非常害怕,即使它们是无害的,也倾向于删除它们。
由于这三个原因,Web 开发人员很少使用它们,除非绝对必要(即会话令牌)。由于 Web 开发人员很少使用它们,因此围绕它们的“最佳实践”很少,而且它们往往不会引起太多关注。
在解决问题之前,我会确保它实际上与问题 cookie 交互。该实现是特定于浏览器的,因此您可能会看到这些测试的非常不同的结果,具体取决于您尝试使用的浏览器。
Cookie 操作本身不会是性能密集型的。但是,cookie 将根据您的 cookie 的路径和域设置与您的部分或全部 HTTP 请求(向上和向下)一起标记。如果您有 1 千字节的 cookie 并且每页发出 10 个请求,那么您实际上将请求和响应负载分别增加了 10 kb。
有关更多详细信息,请参阅ServeFromCookielessDomain。