Ajax с использованием JS, но БЕЗ XMLhttp И с использованием одного и того же сокета каждый раз?

Можно ли обмениваться данными и обновлять данные на странице без перезагрузки, но без использования объекта XMLHttpRequest и совместного использования одного и того же соединения или сокета каждый раз (таким образом, не закрывая соединение для каждого запроса)?


person apalopohapa    schedule 30.06.2009    source источник
comment
Вопрос возникает, потому что я использую встроенный модуль Wi-Fi EZurio, и в его прошивке, похоже, есть утечка памяти, потому что после примерно 2300 сообщений ajax, сгенерированных клиентом с использованием XMLHttpRequest, он дает сбой и выводит ошибку Malloc Fail. Поэтому в качестве обходного пути я подумал об использовании одного и того же сокета для всех ajax-коммуникаций.   -  person apalopohapa    schedule 01.07.2009


Ответы (2)


No.

Вы можете изменить содержимое на странице только с помощью Javascript, однако, если вам нужен контент с сервера, вам придется использовать объект XMLHttpRequest.


Изменить: глядя на ссылку выше о «длинном опросе»

Мой ответ меняется в зависимости от того, что вы имеете в виду. Вы имеете в виду, что не хотите использовать объект XMLHttpRequest на любом уровне? Или вы имеете в виду, что вам не нужно использовать необработанный объект XMLHttpRequest.

Потому что, в конце концов, jQuery будет использовать объект XMLHttpRequest. Однако, если вы просто не хотите иметь дело с необработанным объектом, вы можете использовать что-то вроде jQuery.


Глядя на ответ выше:

Хорошо, я понимаю, о чем вы говорили... однако страница, на которую вы ссылаетесь, говорит о чем-то совершенно другом.

person Thomas    schedule 30.06.2009
comment
Привет. Что ж, вопрос возникает, потому что я использую встроенный модуль EZurio WiFi, и в его прошивке, похоже, есть утечка памяти, потому что после примерно 2300 сообщений ajax, сгенерированных клиентом с использованием XMLHttpRequest, он дает сбой и выводит ошибку Malloc Fail. Поэтому в качестве обходного пути я подумал об использовании одного и того же сокета для всех ajax-коммуникаций. - person apalopohapa; 01.07.2009
comment
Вы правы - страница, на которую я ссылался, открывала новый XMLHttpRequest каждый раз, когда серверу было что сказать. Я удалил ссылку. - person RichieHindle; 01.07.2009

Заставьте ваш сервер отправить обратно «страницу», которая представляет собой обычный HTML, за которым следует серия тегов <script>, которые выводятся медленно с течением времени. Все это работает через один сокет, доставивший HTML-страницу.

Вы не можете обмениваться данными от клиента к серверу таким образом - вам нужно будет делать новый запрос к серверу каждый раз, когда вы это делаете, но с HTTP 1.1, который все равно будет повторно использовать один и тот же сокет каждый раз.

person RichieHindle    schedule 30.06.2009