Bug 14040 - Множество ошибок при работе в DHTML
Summary: Множество ошибок при работе в DHTML
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: kdebase-konqueror (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-16 19:35 MSK by Roman Savochenko
Modified: 2011-02-14 13:14 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Savochenko 2008-01-16 19:35:28 MSK
Дистрибутив: ALT4.0 Branch
Версия: kdebase-konqueror-3.5.8-alt10.M40.1

Замечено при формировании текстового элемента DOM из JavaScript посредством 
вызова "this.place.appendChild(document.createTextNode(txtVal));", а также 
последующей, периодической, модификации свойства nodeValue созданого текстового 
элемента вызовом "txtNode.nodeValue = txtVal".
При определённо изменяющемся значении txtVal отображение элемента не меняетя 
или не обновляется. Во всех других браузерных движках (Gecko, Opera, IE) это 
работает и содержимое обновляется. Обновление этого поля происходит только если 
свернуть/развернуть браузер или повыделять это поле мышью.
Comment 1 Mikhail Gusarov 2008-06-13 13:00:39 MSD

    
Comment 2 Roman Savochenko 2008-12-02 15:22:17 MSK
С текстом проблема решилась.
Но всплыла с обновлением содержимого блока.
kdebase-konqueror-3.5.10-alt4.M41.1
- В фиксированном блоке строится дерево.
- Дерево разрастается и появляются полосы прокрутки.
- Прокручиваем вниз.
- Сворачиваем большой кусок дерева.
- Полосы прокрутки исчезают, а верхняя часть дерева осталась за пределами верхней границы блока.
- Достать верхнюю часть без разворачивания дерева до появления полос прокрутки становится невозможно.
Comment 3 Roman Savochenko 2008-12-02 15:35:58 MSK
Эта проблема актуальна и для:
kde4base-konqueror-4.1.3-alt0.M41.2
Кроме неё в KDE4 обнаружена проблема с кодировками. Элементы создаваемые DOM динамически из данных полученных от сервера посредством AJAX отображаются иероглифами.
При этом в заголовке страницы указана кодировка:
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
Данные идут заведомо в UTF-8.
В остальных браузерах этих проблем нет.
Comment 4 Roman Savochenko 2008-12-08 11:11:55 MSK
Со скролингом не помагает принудительная установка scrollTop в 0 и scrollIntoView для верхнего элемента.
Comment 5 Roman Savochenko 2008-12-09 13:48:26 MSK
И ещё несколько багов:
- Если браузер закрыть в момент выполнения JavaScript и синхронных запросов к серверу (getXmlHttp) он падает.
- Если по нажатию на иконке, в обработчике onclick, вызывается JavaScript синхронный запрос к серверу (getXmlHttp), то иконка схватывается даже при малом времени удержании мыши. Отпускается только по Esc.
В FireFox и Opera с этим нормально.
Comment 6 Sergey V Turchin 2008-12-15 15:00:48 MSK
IMHO проще запретить русские буквы. Обработка нелатинских букв(в т.ч. многобайтных) может быть фиг знает как сделана.
Comment 7 Sergey V Turchin 2008-12-15 17:09:28 MSK
Извиняюсь, не туда влепил :-(
Comment 8 Roman Savochenko 2009-01-01 15:24:40 MSK
После реализации своего динамического WEB-сервиса собрал ошибки браузеров (http://diyaorg.dp.ua/oscadawiki/Doc/WebCfgD?v=5h6&#h810-9)

Из них у Konqueror большинство:
1. Стабильные падения браузера.
Браузер неоднократно и стабильно падает в моменты вычисления JavaScript и при операциях с внешними окнами.

2. Не возвращается скролл дерева навигации.
Если дерево навигации развернуть до появления вертикального скрола, затем прокрутить его вниз, после чего свернуть крупную ветку, то вертикальный скролл исчезает, а часть дерева остаётся невидимым за верхней частью блока. Т.е. содержимое блока не обновляется.

3. Не обновляются изображения.
В полях изображений, для обновления изображения из сервера, изменяется свойство “src”. Браузер этого не чувствует, иногда даже обновляет размер рамки, а изображение не обновляет. Методы для предотвращения кеширования изображения применяются, но не помогают.

4. Схватывание изображений кнопок.
JavaScript модуля используют не асинхронные, а синхронные запросы к серверу для сохранения последовательности действий. В моменты такого запроса, если он был вызван событием от изображения (изображение является кнопкой), изображение схватывается как будто для переноса, даже по кратковременным кликам мыши.

5. Невозможно вставить новый элемент в дерево объектов полученное как результат XMLHttpRequest.
Для контроля за модификацией структуры конфигурационной страницы использовалось приведение текущего дерева структуры к новой, только что полученной из XMLHttpRequest. В момент вставки нового элемента в дерево структуры посредством insertBefore() происходит ошибка «DOM error 4". Если вставка производится в дерево созданное с нуля (а не из XMLHttpRequest) эта ошибка не происходит. Похоже проблема заключается в отличии объекта “document” владельца этих деревьев. В такое дерево невозможно добавить узел созданный как document.createElement(). Вставляются только соданные как mytree.ownerDocument.createElement().
Comment 9 Mikhail Gusarov 2009-01-01 15:25:48 MSK
Такого рода баги нужно репортить в upstream.
Comment 10 Roman Savochenko 2009-01-27 23:54:41 MSK
Была у меня такая мысль. Но после того как я увидел сколько там нефикшенных ошибок на Konqueror висит, я понял, что эффекта будет не более чем постить здесь. :)
Comment 11 Sergey V Turchin 2009-01-29 17:58:17 MSK
(In reply to comment #10)
> я понял, что эффекта будет не более чем постить здесь. :)
Неправильно поняли. Здесь постить будет эффекта не более, чем постить там ;-)
Comment 12 Roman Savochenko 2009-02-18 18:25:54 MSK
(В ответ на комментарий №3)
> Кроме неё в KDE4 обнаружена проблема с кодировками. Элементы создаваемые DOM
> динамически из данных полученных от сервера посредством AJAX отображаются
> иероглифами.
> При этом в заголовке страницы указана кодировка:
> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
> Данные идут заведомо в UTF-8.
> В остальных браузерах этих проблем нет.
С этим разобрался. Konqueror некорректно парсит XML без заголовка:
<?xml version="1.0" encoding="UTF-8" ?>
Если заголовок присутствует то и проблемы нет.
Актуальными для Konqueror4 остаются ошибки:
 - Не возвращается скролл дерева навигации.
 - Не обновляются изображения. И в добавок, то что обновляется видимо мигает. Даже в Konqueror 3.5 такого не было.
Comment 13 Roman Savochenko 2009-02-19 22:33:21 MSK
Оказывается, что с заголовком "<?xml version='1.0' encoding='UTF-8' ?>" Konqueror 3.5.10 не работает.
Цирк просто какой-то!
И что с ним блин делать?
Comment 14 Andrey Cherepanov 2009-02-20 10:46:03 MSK
(В ответ на комментарий №13)
> И что с ним блин делать?
Писать на bugs.kde.org. ;)
Comment 15 Roman Savochenko 2009-02-20 10:55:28 MSK
Ну хоть "Content-Type: text/xml; charset=UTF-8" в заголовке http ответа на POST запрос везде работает.
Comment 16 Zerg 2011-02-14 13:14:22 MSK
В kde-3 уже вряд ли что-то серьезное дорабатываться будет.