Медленная загрузка клиентской библиотеки Socket.IO

enter image description here

Я запускаю свой сервер и обновляю страницу в браузере, а затем требуется 2 секунды для загрузки ресурса JS. Если я затем перезагружаю страницу в любом браузере, она быстро загружается.

Это происходит только при первом запросе после запуска сервера. Я предполагаю, что это как-то связано с тем, что сначала собирал файл JS, а затем после этого он кэшируется на сервере.

Can anything be done to cut down this time?

Я пробовал как с производственными настройками, так и без них (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);
 Erel Segal-Halevi18 дек. 2012 г., 09:13
Это может быть связано:stackoverflow.com/questions/8480398/…см первый ответ
 Znarkus31 мая 2012 г., 08:40
Хм, извините, вопрос выложили слишком рано. Я предоставил больше информации сейчас
 Znarkus18 дек. 2012 г., 12:50
@ErelSegalHalevi займется этим, спасибо.

Ответы на вопрос(2)

Каким-то образом ваша библиотека jQuery, которая вдвое больше библиотеки socket.io, загружается в 50 раз быстрее. Возможно, это было кешировано от ранее? В конечном счете, браузер просто загружает файл.

В любом случае,этот парень утверждает, что сократил это.

 01 июн. 2012 г., 18:30
Так что кто-то где-то на пути между сервером и компьютером кеширует его. Если предварительная загрузка не является опцией, вы мало что можете сделать, кроме как сделать первую загрузку менее медленной, уменьшив ее.
 Znarkus01 июн. 2012 г., 11:43
Я запускаю сервер, загружаю страницу в Chrome, а затем в Firefox. Chrome = медленно, Firefox = быстро. Затем я перезагружаю сервер, загружаю страницу в Firefox, а затем в Chrome. Chrome = быстро, Firefox = медленно.
 Znarkus31 мая 2012 г., 10:05
Пожалуйста, смотрите мои разъяснения. :)
 Znarkus01 июн. 2012 г., 11:45
tl; dr: первый запрос всегда медленный, последовательные запросы быстрые, даже если последовательные запросы выполняются другим браузером.
 31 мая 2012 г., 19:20
Извините, я не понимаю, каково ваше разъяснение. На риск непреднамеренной иронии, не могли бы вы объяснить? В любом случае, для ускорения у вас есть три варианта: 1) уменьшить библиотеку socket.io, чтобы уменьшить размер загрузки, 2) связать socket.io с другой библиотекой, чтобы уменьшить количество загрузок, 3) скачать с более быстрого сервера

В настоящее время есть ошибка в socket.io, которая вызывает это. Убедитесь, что у вас нет этого набора, и он должен загружаться НАМНОГО быстрее:

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

Первый вызов load socket.io.js попытается сжать его и сохранить в памяти. Вы столкнетесь с этими ошибками:

https://github.com/LearnBoost/socket.io/issues/984 https://github.com/LearnBoost/socket.io/issues/932

Вы можете получить некоторое увеличение скорости, используя уменьшенную версию и разрешив кэширование, пока это не будет исправлено:

io.set('browser client minification', true);  // send minified client
io.set('browser client etag', true);          // apply etag caching logic based on version number
 02 дек. 2013 г., 23:15
Работает как шарм (+1)
 14 окт. 2013 г., 03:29
Я думаю, что они уже устранили проблему с gzip, потому что у меня нет проблем с ней. Я прав? Или это происходит только когда вы используете gzip на Windows? Мой Ubuntu 12.04

Ваш ответ на вопрос