Прочетох, че XMLHttpRequests са най-подходящи за съдържание, което има честота на актуализиране от 30 секунди или повече. В същата статия се споменава, че уеб приложенията, които се нуждаят от по-бърза честота, трябва да използват сокет. Не мога да намеря статията/книгата, в която се споменава това (ако някой може да публикува връзки към статии, които обсъждат това, ще съм благодарен). Вашият опит с XMLHttpRequest и сокети подкрепя ли горното твърдение или не? Какви други видове връзки между браузъра и сървъра трябва да се имат предвид?
XMLHttpRequest срещу Socket срещу някакъв друг подход
Отговори (3)
Javascript няма начин да осъществява истински сокет комуникации. Ако сте заключени само в Javascript (без SWF помощник, ActiveX или някаква друга технология), тогава XMLHttpRequest е най-добрият ви залог.
XMLHttpRequest не е много подходящ за по-чести актуализации (поне на теория) поради режийните разходи, свързани с анализирането и формирането на заявката и анализирането на резултатите. На теория Socket връзката ще ви даде канал обратно към сървъра, без да преминавате през цялото генериране на заявки.
Недостатъкът на използването на Sockets (освен факта, че Javascript не ги поддържа директно) е, че ако използвате персонализиран формат за сериализиране за данните, връщащи се през Socket връзката, само кодът, който пишете, може да консумира резултатите (освен ако не сте публични вашия формат за сериализация). Това може да не е проблем за вас, но за някои е шокиращо...
Ето малка демонстрация на Sockets в Javascript с SWF Helper:
Отговорът е нещо повече от честота на актуализиране. Броят на едновременните потребители също е важен, тъй като се използва Comet (това е ключовата дума което ще ви отведе до повече статии) използва връзки със сървъра и може да не се мащабира добре. Съвременните уеб сървъри се справят по-добре с повече връзки, но трябва да тествате това във вашата собствена среда.
За мен дори 30 секунди са твърде често, за да използвам AJAX. Моят лимит вероятно е около една минута.
Тази статия вече трябва да се счита за датирала. Съвременните браузъри нямат проблеми с обработването на заявки за 1 секунда. Вижте колко бързо Google може да познае вашето търсене. Просто извикване на XMLHttpRequest. Без светкавица. Няма ActiveX.