Я не могу понять, почему HTML/Web UI реагирует медленнее, чем WinForms/WPF/Android View/Native UI?
Собственный интерфейс также имеет стили, элементы вложения, события, чем CSS, DOM, события javascript веб-интерфейса.
Время отклика событий включает в себя: изменение фокуса, выпадающее меню, прокрутку, перемещение анимации, изменение размера анимации и т.д.
Вставка/замена дерева DOM также медленная, вставка 10000 символов html будет стоить 100 мс в google chrome в android 4.0, а синтаксический анализ его шаблона - только 20 мс (шаблон jQuery micro).
Я высвободил, возможно, самый большой фактор, который замедляет реакцию событий:
- Блокировка пользовательского интерфейса между параллельными процессами javascript;
- Механизм рендеринга слишком медленный, чтобы обрабатывать новые пользовательские интерфейсы, изменяющие сообщения от рабочих javascript, особенно когда движок рендеринга браузера занят обновлением последнего пользовательского интерфейса (из-за точки 3);
- Метод макета html (например: css-каскадный, встроенный макет потока, отзывчивый макет и т.д.) может замедлить частичное обновление пользовательского интерфейса.
- Parsing html/xml стоит долгое время, подсказка: инфляция Android-просмотров сильно зависит от предварительной обработки XML файлов, которые выполняются во время сборки (http://developer.android.com/reference/android/view/LayoutInflater.html)
Подмножество стандартов HTML и CSS может быть будущим решением для разработки приложений webview:
http://www.silexlabs.org/haxe/cocktail/
http://www.terrainformatica.com/htmlayout/
https://github.com/tombenner/nui
http://steelratstory.com/steelrat-products/wrathwebkit
http://trac.webkit.org/wiki/EFLWebKit
https://github.com/WebKitNix/webkitnix
http://qt-project.org/doc/qt-4.8/richtext-html-subset.html
http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/
Куча родных языков разметки пользовательского интерфейса: http://en.wikipedia.org/wiki/User_interface_markup_language
почему нет упрощенного стандарта HTML и упрощенного механизма компоновки Webcore для замены этого родного UIML?
Возможно, мы могли бы реализовать подмножество html в проекте kivy.org.
PC, android browser = прикладной поток + ui thread
iOS browser = прикладной поток + ui поток данных + ui аппаратная нить (CoreAnimation/OpenGL ES)
В браузере ios поток приложений может напрямую вызвать аппаратный поток ui.