2012-05-31 3 views
7

enter image description hereклиент библиотека Socket.IO медленная загрузка

Я начинаю свой сервер, и обновите страницу в браузере, который затем принимает> 2s, чтобы загрузить ресурс 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); 
+0

Hm извините, выложил вопрос слишком рано. Я предоставил больше информации – Znarkus

+0

Это может быть связано: http://stackoverflow.com/questions/8480398/why-is-socket-io-connection-slow-on-safari-and-chrome, см. Первый ответ –

+0

@ Спасибо, ErelSegalHalevi, спасибо. – Znarkus

ответ

0

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

Anyways, this fellow утверждает, что сократил его.

+0

См. Мои разъяснения. :) – Znarkus

+0

Извините, я не понимаю, в чем ваше разъяснение. С риском непреднамеренной иронии вы могли бы, гм, выяснить? В любом случае, чтобы ускорить работу, у вас есть три варианта: 1) уменьшите размер библиотеки socket.io, чтобы уменьшить размер загрузки; 2) свяжите сокет.io с другой библиотекой, чтобы уменьшить количество загрузок; 3) загрузка с более быстрого сервера –

+0

Я запускаю сервер, загружаю страницу в Chrome, а затем в Firefox. Chrome = медленно, Firefox = быстро. Затем я перезагружаю сервер, загружаю страницу в Firefox, а затем в Chrome. Chrome = быстро, Firefox = медленно. – Znarkus

3

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

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

Первый вызов для загрузки 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 
+0

Я думаю, что они уже исправили проблему с gzip, потому что у меня нет проблем с ней.Я прав? Или это происходит только при использовании gzip в Windows? Mine is Ubuntu 12.04 – Maziyar

+0

Работает как шарм (+1) – Tom

Смежные вопросы