【问题标题】:Socket.IO client library slow loadingSocket.IO 客户端库加载缓慢
【发布时间】:2013-01-30 02:35:22
【问题描述】:

我启动我的服务器,并在浏览器中刷新页面,然后需要 2 秒以上的时间来加载 JS 资源。如果我然后在任何浏览器中重新加载页面,它会很快加载。

这只会在服务器启动后发生第一个请求。我想这与第一次将JS文件放在一起,然后将其缓存在服务器上有关。

有什么办法可以减少这个时间吗?

我尝试过使用和不使用生产设置(gzip、minify 等)。

客户端代码:

<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
</script>

服务器代码:

var express = require('express'),
    expressServer = express.createServer(),
    socketServer = require('socket.io').listen(expressServer);

expressServer.listen(1337);

【问题讨论】:

标签: node.js socket.io


【解决方案1】:

目前在 socket.io 中存在导致此问题的错误。确保你没有这个设置,它应该加载更快:

io.set('browser client gzip', true);          // gzip the file

第一次调用 load socket.io.js 将尝试压缩它并将其存储在内存中。你会遇到这些错误:

您可以通过使用缩小版本并允许缓存直到解决此问题来提高速度:

io.set('browser client minification', true);  // send minified client
io.set('browser client etag', true);          // apply etag caching logic based on version number

【讨论】:

  • 我认为他们已经修复了 gzip 问题,因为我没有问题。我对吗?还是只有在 Windows 上使用 gzip 时才会发生?我的是 Ubuntu 12.04
  • 像魅力一样工作 (+1)
【解决方案2】:

不知何故,您的 jQuery 库是 socket.io 库的一半以上,下载速度提高了 50 倍。也许它是从以前缓存的?最终,浏览器只是在下载一个文件。

无论如何,this fellow 声称已经缩小了它。

【讨论】:

  • 请参阅我的说明。 :)
  • 对不起,我不明白你的解释是什么。冒着意外讽刺的风险,你能解释一下吗?无论如何,为了加快速度,您有三个选择:1)使 socket.io 库更小,以减少下载大小 2)将 socket.io 与另一个库捆绑,以减少下载次数,3)从更快的服务器下载
  • 我启动服务器,在 Chrome 中加载页面,然后在 Firefox 中加载。铬=慢,火狐=快。然后我重新启动服务器,在 Firefox 中加载页面,然后在 Chrome 中加载。 Chrome=快,Firefox=慢。
  • tl;dr:第一个请求总是很慢,连续请求很快,即使连续请求是使用另一个浏览器。
  • 所以有人在服务器和计算机之间的某个地方缓存它。除非可以选择预加载,否则您无能为力,只能通过减小第一次加载来降低速度。
猜你喜欢
  • 2022-08-24
  • 2018-03-27
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
  • 2012-10-31
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多