[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