Javascript 在JS中编写cookie是否非常慢?

Javascript 在JS中编写cookie是否非常慢?,javascript,cookies,hard-drive,Javascript,Cookies,Hard Drive,我需要使我的网站在客户端更快。我想知道我过度的Javascript cookie操作是否会减慢浏览器的速度。它使用硬盘驱动器,这是计算机中最慢的部件。在严重碎片化的硬盘上,cookie操作会冻结浏览器吗 JS正在对cookie的写入/读取(缓存等)进行任何优化。我可以利用这些优化来改进我的站点吗 用服务器端数据库替换客户端cookie是不可能的,因为我的服务器已经超载了。有几种方法可以在客户端加速页面,尽管我猜减少cookie的使用最多只能节省几微秒。一般来说,确保你只保存你需要的东西 不过,您

我需要使我的网站在客户端更快。我想知道我过度的Javascript cookie操作是否会减慢浏览器的速度。它使用硬盘驱动器,这是计算机中最慢的部件。在严重碎片化的硬盘上,cookie操作会冻结浏览器吗

JS正在对cookie的写入/读取(缓存等)进行任何优化。我可以利用这些优化来改进我的站点吗


用服务器端数据库替换客户端cookie是不可能的,因为我的服务器已经超载了。

有几种方法可以在客户端加速页面,尽管我猜减少cookie的使用最多只能节省几微秒。一般来说,确保你只保存你需要的东西

不过,您还可以进行大量其他优化,例如:

  • 将文件作为gzip内容提供服务
  • 确保尽可能多的站点是可缓存的
  • 使用CSS精灵并结合javascript+CSS文件来减少HTTP请求(也将减少服务器的负载)
  • 缩小javascript、css和html
这些都是经过验证的减少页面加载时间的方法


有关如何加快页面加载速度的更多信息,请访问YSlow!firefox/firebug插件是一个很好的问题,尽管有着可怕的含义

任何过度的行为都可能对性能产生潜在影响,尽管这一点在几乎任何情况下都是微不足道的。我不知道JavaScript对读/写cookie进行了任何优化,但是大多数磁盘控制器的读/写缓存应该会使I/o平滑到疏忽的程度

为什么很可怕

  • Cookie可能有大小/数量限制:和

  • Cookie可以被操纵,因此它们是不安全的(除非您对其中的值进行了强加密,这当然会影响性能,而且仍然是个坏主意)

  • Cookie有时会被禁用


  • 您提到数据库速度很慢,但添加几个会话变量不会给数据库增加任何额外的负载。或者尝试操作内存中的客户端数据,甚至在查询字符串上传递一些变量(当然是非安全信息)。

    Cookie是请求和响应头的一部分,因此加载它们意味着加载每个请求和响应。其次,每个域总共限制50个cookie,每个cookie限制为4k。第三,许多用户对cookies非常恐惧,甚至倾向于删除它们,即使它们是无害的

    由于这三个原因,web开发人员很少使用它们,除非绝对必要(即会话令牌)。因为web开发人员很少使用它们,所以很少有“最佳实践”围绕着它们,而且它们往往不会得到太多的关注


    在解决问题之前,我会确保它确实与cookies进行了交互。该实现是特定于浏览器的,因此您可能会看到这些测试的结果非常不同,具体取决于您在哪个浏览器上尝试它。

    Cookie操作本身并不是性能密集型的。但是,Cookie将根据Cookie的路径和域设置,在部分或全部HTTP请求(包括向上和向下)上进行标记。如果您有一个千字节的cookie,并且每页发出10个请求,那么实际上您将请求和响应负载分别增加10kb


    有关详细信息,请参阅。

    过早优化?我相信cookie会很快,因为大多数cookie默认都很小。你能解释一下为什么你认为你的Cookie会对性能产生负面影响吗?是的……我很确定你的加载时间问题与你的Cookie无关。对于一般的页面加载时间,我认为我从来没有找到过比@Matt Briggs~更好的工具,但我仍然需要知道如何使用该工具。。。这是大多数开发者所不具备的。Chrome并不是天生的web开发工具,它的插件系统充其量也不多。虽然使用Firefox进行日常浏览可能是一种乐趣,但Firefox仍然是开发者最好的朋友。@Andrew:Firefox没有chrome所拥有的评测工具。如果你知道相当于速度跟踪器的东西,请告诉我。firebug除了内置在webkit inspector中外,还可以做任何事情,只有firebug会更经常地在其中发现bug。最后,firefox比webkit更能容忍不好的事情,因此firefox可以处理更多的事情,但仍然是完全错误的。为什么Cookie会被发送到服务器?我的服务器代码从不使用cookies。我只在JS端访问cookie。所以,如果每个用户都有20个cookie,那么每个PHP服务器请求都会发送所有20个cookie?为什么?有没有办法禁止向服务器发送Cookie?服务器可以通过返回带有
    set Cookie
    标题的响应来设置Cookie。浏览器随后会将这些Cookie添加到同一服务器的每个后续请求中,方法是将它们放置在请求的
    Cookie
    头中。为什么?因为cookies是HTTP规范的一部分。它们允许服务器在客户端设备上存储少量状态,从而解决了HTTP无状态的问题。从Javascript访问和操作它们只是后来才添加的。