Официально у объекта XMLHTTPRequest есть состояние readyState=3, interactive, при котором ответ находится в процессе загрузки, и уже полученная часть может быть прочитана в responseText.
В ряде браузеров это действительно работает, и состояние interactive можно использовать для передачи сообщений с сервера.
Кнопка ниже запускает XMLHTTPRequest, на который сервер отвечает по 1 цифре в секунду.
Возможно, результат будет выводится большими блоками по много сообщений сразу - дальше мы обсудим, почему.
Тут будут сообщения
На самом деле readyState браузеры поддерживают всяк в свою степь, и результаты могут быть различные. На момент написания, "как надо" работало только в Firefox, более-менее работало в Opera/Safari, в IE 6-7 не работает вообще.
Можно использовать состояние interactive для server push: каждое событие interactive знаменует приход новой порции данных.
Тут будут сообщения
(Если Вы нажали на обе кнопки, то сообщения обоих запросов будут вываливаться в один div)
Функция обработки будет такой:
var last_char = 0
req.onreadystatechange = function() {
if (req.readyState == 3) {
// выцепить из ответа сервера следующий кусок
var message = req.responseText.substr(last_char)
last_char = req.responseText.length
}
...
}
Несколько лет назад реализовывал подобную конструкцию. На readyState не полагался - просто по таймеру с небольшим интервалом проверял не появилось ли чего-нибудь нового. Для IE6 (7ого тогда еще не было) читал не responseText, а responseXML.xml и все прекрасно работало.
Для Chrome и Safari надо ContentType установить "application/json" тогда работает!
Для IE от версии 8 испольуйте XDomainRequest вместо new ActiveXObject('MSXML2.XMLHTTP'), но этот класс работает несколько иначе, чем XmlHTTPRequest.
Для IE ниже 8 только iframe с периодическим опросом!
Вот не нашел еще красивого способа для Оперы.
Чтобы он работал в Chrome и Safari, вы должны изменить Content Type на «application/json». После этого попробуйте!
Используйте XDomain tunnel rush Request вместо нового, начиная с версии 8 Internet Explorer.
никто не вкурсе как бы его (req.responseText) очищать в процессе,
а то перспиктива его роста вообще не радует.
Не пользовался этим методом, но предположу что надо будет обновить запрос, к примеру после 10 ответов от сервера. Т.е надо будет закрыть и пересоздать АЯКС соединение.
Протролю наверно, я бы сперва попробовал
Donne cerca uomi to aplikacja randkowa, którą polecam. Jeśli niewiele wiesz o danej osobie, nawiązanie pierwszego kontaktu może być dużym wyzwaniem. Musisz przesiać morze profili, co sprawia, że łatwo jest pominąć osoby, którym być może dałbyś szansę w innych okolicznościach.
While looking for articles on these topics, I came across this article on the site here. As I read your article, I felt like an expert in this field. I have several articles on these topics posted on my site. Could you please visit my homepage? 온라인카지노
dino game is also called Google Dinosaur Game, dinosaur game, T-Rex Game, Chrome Dino, No Internet Game, and Dino Dun. The online game is free to play on a computer, a cell phone, or a tablet.
The objective is to arrange characters and events in a way that fits the narrative goals of each level. The game promotes creative problem-solving, with multiple ways to solve the puzzles. In storyteller players are free to experiment with different storytelling paths, crafting unique stories as they progress. The game’s puzzles increase in complexity, providing a fun and rewarding experience for players who enjoy both creative storytelling and challenging puzzles.
Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены. Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
ИЕ ваще не поддерживает, данные можно прочитать только когда readyState = 4
Опера 9.50 ведет здясь себя также как ИЕ
Проблему пока никто не решил.
херово...
в Опере 9.62 работает
В Opera и FireFox работет, в Chrome, Safari, IE и т.д. - нет.
В хроме уже работает!
Несколько лет назад реализовывал подобную конструкцию. На readyState не полагался - просто по таймеру с небольшим интервалом проверял не появилось ли чего-нибудь нового. Для IE6 (7ого тогда еще не было) читал не responseText, а responseXML.xml и все прекрасно работало.
Для Chrome и Safari надо ContentType установить "application/json" тогда работает!
Для IE от версии 8 испольуйте XDomainRequest вместо new ActiveXObject('MSXML2.XMLHTTP'), но этот класс работает несколько иначе, чем XmlHTTPRequest.
Для IE ниже 8 только iframe с периодическим опросом!
Вот не нашел еще красивого способа для Оперы.
А у меня на обарот в Opera не фурычит... загрузил последнию, заработала...
все что в IE пишу, в Opera идет на ура... в Мозилке не фурычит...
все хорошо, но...
5 var message = req.responseText.substr(last_char)
6 last_char = req.responseText.length
req.responseText будет содержать весь накопленный ответ сервера, по мере его поступления, и в процессе работы может иметь приличный размер.
никто не вкурсе как бы его (req.responseText) очищать в процессе,
а то перспиктива его роста вообще не радует.
Чтобы он работал в Chrome и Safari, вы должны изменить Content Type на «application/json». После этого попробуйте!
Используйте XDomain tunnel rush Request вместо нового, начиная с версии 8 Internet Explorer.
никто не вкурсе как бы его (req.responseText) очищать в процессе,
а то перспиктива его роста вообще не радует.
Не пользовался этим методом, но предположу что надо будет обновить запрос, к примеру после 10 ответов от сервера. Т.е надо будет закрыть и пересоздать АЯКС соединение.
Протролю наверно, я бы сперва попробовал
хотя возможно свойство только readonly
It's necessary, I need more information driving directions
Useful information for my work word finder
Roksa pl myslenice
Donne cerca uomi to aplikacja randkowa, którą polecam. Jeśli niewiele wiesz o danej osobie, nawiązanie pierwszego kontaktu może być dużym wyzwaniem. Musisz przesiać morze profili, co sprawia, że łatwo jest pominąć osoby, którym być może dałbyś szansę w innych okolicznościach.
wohh, lewdle and dordle is really top notch. It's really funny
While looking for articles on these topics, I came across this article on the site here. As I read your article, I felt like an expert in this field. I have several articles on these topics posted on my site. Could you please visit my homepage? 온라인카지노
The travel places you shared are very good and very useful to me run 3, I will often visit your articles to gain more knowledge.
I am continually looking online for articles that can facilitate me. Thank you! 토토사이트
I stumbled on this while browsing on google I’ll be sure to come back. thanks for sharing. https://therowdylender.com/
What’s up colleagues, its enormous post regarding educationand entirely defined, keep it up all the time. 메이저사이트
F*ckin¦ Have you ever thought about including a little bit more than just your articles? 먹튀검증
Oh my goodness! an incredible article dude. Thanks Nonetheless I am experiencing subject with ur rss .
dino game is also called Google Dinosaur Game, dinosaur game, T-Rex Game, Chrome Dino, No Internet Game, and Dino Dun. The online game is free to play on a computer, a cell phone, or a tablet.
The objective is to arrange characters and events in a way that fits the narrative goals of each level. The game promotes creative problem-solving, with multiple ways to solve the puzzles. In storyteller players are free to experiment with different storytelling paths, crafting unique stories as they progress. The game’s puzzles increase in complexity, providing a fun and rewarding experience for players who enjoy both creative storytelling and challenging puzzles.
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.