在JS写一个非常慢的cookie?

时间:2010-09-27 22:12:48

标签: javascript cookies hard-drive

我需要在客户端更快地建立我的网站。我想知道我过多的Javascript cookie操作是否会降低浏览器的速度。它使用硬盘驱动器,它是计算机中最慢的组件。在一个严重分散的硬盘上,cookie操作会冻结浏览器吗?

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

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

4 个答案:

答案 0 :(得分:11)

有几种方法可以加快客户端页面的速度,虽然我猜测减少使用cookie只能节省几微秒。总的来说,确保你只保存你需要的东西。

您可以做很多其他优化,例如:

  • 以gzip压缩内容的形式提供文件
  • 确保您的网站可以缓存
  • 使用CSS sprites并结合javascript + css文件来减少HTTP请求(也会减少服务器的负载)
  • 缩小你的javascript,css和html

这些都是减少页面加载时间的成熟方法。

有关如何加快页面加载的更多信息,请获取YSlow! firefox / firebug http://developer.yahoo.com/yslow/

的插件

答案 1 :(得分:0)

为一个好问题+1,尽管有一个可怕的含义。

任何超额完成的任务都可能会对性能产生影响,但几乎在任何情况下都不会产生这种影响。我不知道JavaScript对读取/写入cookie做了任何优化,但是大多数磁盘控制器的读/写缓存应该将这个i / o平滑到疏忽点。

为什么这很可怕?

  1. Cookie可能有尺寸/数量限制:http://support.microsoft.com/kb/306070http://en.wikipedia.org/wiki/HTTP_cookie

  2. Cookie可以被操纵,因此它们不安全(除非您强烈加密其中的值,这当然会影响性能,但仍然是一个坏主意)。

  3. Cookie有时会被停用。

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

答案 2 :(得分:0)

cookie是请求和响应标头的一部分,因此加载它们意味着加载每个请求和响应。其次,每个域限制为总共50个cookie,每个cookie限制为4k。第三,许多用户绝对害怕cookie,并且即使它们是无害的,也倾向于删除它们。

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

在解决问题之前,我会确保它实际上是与Cookie相互作用的问题。该实现是特定于浏览器的,因此您可能会看到这些测试的结果非常不同,具体取决于您尝试使用的浏览器。

答案 3 :(得分:0)

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

有关详细信息,请参阅ServeFromCookielessDomain