powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / server push работает в FF, но не работает в IE и Chrome
8 сообщений из 8, страница 1 из 1
server push работает в FF, но не работает в IE и Chrome
    #38637332
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжение к 15881825 .

На главной страничке имеется:
Код: html
1.
2.
3.
4.
<form method="post" action="nph-run" target="results">
<input ....> <input ....> <input ....>
</form>
<iframe name="results" width="100%" height="250"></iframe>

nph-run это перловый скрипт выдающий много-секционный http ответ:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#!/usr/local/bin/perl
use CGI qw/:push -nph/;
$| = 1;
print multipart_init(-boundary=>'----here we go!');
for (0 .. 4) {
	print multipart_start(-type=>'text/plain'), "The current time is ",scalar(localtime),"\n";
	if ($_ < 4) {
		print multipart_end;
	} else {
		print multipart_final;
	}
	sleep 1;
}


Все идеально работает в FireFox.



IE-11 вываливает в iframe весь http responce в plain/text режиме. Включая все заголовки, разделители и конечно радостную надпись: WARNING: YOUR BROWSER DOESN'T SUPPORT THIS SERVER-PUSH TECHNOLOGY.

А Chrome (свежайший) когда начинает получать результат просто его игнорирует. Ни ошибок, ни текстов, ничего...


Кто виноват и что делать?
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38637512
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается Chrome официально отказались поддерживать multipart/x-mixed-replace в прошлом июне, якобы поддержка такого сложного типа очень уж сложна. А IE вообще его знать не знает.
Сволочи и гады. И те и другие.

Server Side Events, которое text/event-stream, поддерживается в FF и Chrome, но IE его не знает вообще.


Вроде еще WebSockets есть, но что-то не могу найти примеров как их использовать, а написанное по документации - не работает.
У кого-нибудь есть простенький пример?

А еще у нас пользователи маки любят...

Жить тяжко.
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38637590
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
long polling -

хабрИтак, что же из себя представляет Long Polling?
Выглядит это примерно следующим образом:
1) Клиент отсылает на сервер обычный ajax-запрос
2) Сервер, вместо того, чтобы быстро обработать этот запрос и отправить ответ клиенту, запускает цикл, в каждой итерации которого следит за возникновением событий (другой клиент добавил запись или удалил).
3) При возникновении события сервер генерирует ответ и отсылает его клиенту, таким образом завершая запрос.
4) Клиент, получив ответ от сервера, запускает обработчик события и параллельно отправляет очередной «длинный» запрос серверу.


Это походу единственный кроссбраузерный вариант, работающий везде. Вконтакте наверное до сих пор на нём, с момента основания (я к тому, что это проверено временем/нагрузками и разными браузерами). SSE юзал, но чем-то оно мне не понравилось, да и работает не во всех браузерах. В современном мире long poll уже устарел и websockets выглядит привлекательней, но опять же - кроссбраузерность.
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38637591
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38637658
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У long-poll есть досадный минус - некоторые прокси обрывают http соединение через 30 сек.
Приходится переподключать.
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38637688
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вконтакте к примеру по 25 секунд и держит соединение.
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38638270
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stlong polling -

хабрИтак, что же из себя представляет Long Polling?
Выглядит это примерно следующим образом:
1) Клиент отсылает на сервер обычный ajax-запросВообще-то, это набор обычных GET запросов "Готово? Нет. Готово? Нет. Готово? Да." Клиент сидит в вечном цикле и требует от сервера ответа готово или нет.

Тоже можно использовать, но только в том случае если между двумя CGI запросами можно сделать связку какую-либо. Например они будут читать файл или обращаться к СУБД и проверять какой-нибудь флаг. А если CGI процесс один-единственный делающий всю работу, но долго. И промежуточное состояние этой работы нельзя или не желательно писать на диск, то polling становится неприменим или очень сложным.

st_stЭто походу единственный кроссбраузерный вариант, работающий везде.Да, это наиболее надежный и действительно универсальный метод, за счет того что он основан на самых примитивных множественных GET'ах.

Если ничего друго не придумается, то придется конечно использовать именно этот подход, но жутко не хочется. Синхронизировать несколько независимых POST/GET запросов не особо легкая задача.
...
Рейтинг: 0 / 0
server push работает в FF, но не работает в IE и Chrome
    #38638307
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В кэш(память) результат выполнения записывать и отдавать клиенту по запросу.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / server push работает в FF, но не работает в IE и Chrome
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]