[Comm] Реализация полностью динамических и блочных WEB-интерфейсов.
Roman Savochenko
=?iso-8859-1?q?rom=5Fas_=CE=C1_diyaorg=2Edp=2Eua?=
Пн Дек 24 01:24:26 MSK 2007
Aleksander N.Gorohovski пишет:
>> Занялся нынче реализацией полностью динамического и блочного
>> WEB-интерфейса. В связи с этим выплыли особенности реализации отдельных
>> вещей на различных WEB-браузерах, с чем и хотел поделиться. Пишу в
>> рассылку ALTLinux, поскольку некоторые вещи имеют непосредственное
>> отношение к нему и его компонентам.
>>
>> Особенность интерфейса заключается в полной его генерации на стороне
>> браузера, на основе данных полученных у сервера, через запрос
>> XMLHttpRequest. А также последующего слежения за изменениями,
>> посредством того-же механизма, с периодичностью 1с.
>>
>> Рассмотрю особенности в поведении браузеров по порядку:
>> FireFox 2.0.0.11:
>> Наиболее качественно поддерживает все функции и особых нареканий не
>> вызывает. Нормально держит фиксированное форматирование и корректно
>> обновляет периодические изменения интерфейса.
>>
>> Konqueror 3.5.8:
>> В целом интерфейс формирует нормально, однако есть много неприятных
>> особенностей:
>> - Тег кнопки <button> поддерживается очень плохо, а именно не
>> центрирует содержимое кнопки и, при указании фиксированного размера её
>> (width, height) превышает эти размеры, т.е. выходит за пределы блока.
>> Нужно отметить, что вид кнопки формируемой тегом <button> имеет совсем
>> иной вид чем тегом <input type="button">. Необходимость же
>> использования именно тега <button> состоит в том, что только в него
>> можно помещать изображение.
>> - Не обновляет текст, при изменении его в JavaScript посредством
>> присваивания значения (txtNode.nodeValue = txtVal). Точнее значение
>> присваивается, но не обновляется изображение, что видно если попробовать
>> выделить текст, в процессе выделения обновление идёт.
>> - Непредсказуемо ведёт кеш. В одних случаях не кеширует в других
>> кеширует, хотя <meta http-equiv='Cache-Control' content='no-cache'/>
>> присутствует.
>> - Несколько не стабилен. Достаточно часто сегфолтится при закрытии окна
>> с динамическим интерфейсом, а однажды даже заблокировал события от
>> клавиатуры и мыши, после серфинга по его меню, в момент работы и
>> обновления динамического интерфейса.
>>
>> Opera 9.25:
>> А этот браузер "обрадывал" сразу после установки. Хотя в целом обновляет
>> и отрисовывает интерфейс нормально. После установки же всплыла ситуация,
>> когда на простой форме аутентификации не видит сервер в момент отсылки
>> POST запроса аутентификации. На сервер запрос не приходит вообще!
>> Особенность тут в том, что на другой сервер, под ALT2.4 запрос идёт
>> нормально, а на ALT4.0 на прямую не идёт. Если же сделать запрос на
>> сервер ALT4.0 через прокси на ALT2.4, то всё работает.
>>
> У меня нечто подобное тоже наблюдается
> (я предполагал, что где-то не подкрутил какие "гайки")
> Sorry,
> пользуете Apache 2
> ?
> или
> Apache 1.3
> ?
>
Нашел в чём проблема. Проблема в Keep-alive. Opera криво обрабатывает
принудительное закрытие сеанса сервером. Т.е. она считает, что если
Keep-alive усановила, то сервер сеанса не разорвёт и не пытается
восстановить соединения когда шлёт POST запрос, а иногда в этот момент
даже валится. Однако высоконагруженные сервера могут рвать соединение
или вообще Keep-alive игнорировать.
Вылезло на WEB-сервере моей программы, которая Keep-alive и игнорирует.
Хотя принудительно Keep-alive ей поставить можно. Поставил и Opera
заработала.
С уважением, Роман
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : rom_as.vcf
Тип : text/x-vcard
Размер : 222 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/community/attachments/20071224/d6367d7c/attachment-0002.vcf>
Подробная информация о списке рассылки community