Браузер/HTML и Qt Quick/QML

Добавлено 19 мая 2022 в 02:37

Браузер – это среда выполнения для отображения HTML и выполнения кода Javascript, связанного с HTML. В настоящее время современные веб-приложения содержат гораздо больше кода JavaScript, чем HTML. Javascript внутри браузера представляет собой стандартную среду ECMAScript с некоторыми дополнительными API браузера. Типовая среда JS внутри браузера имеет глобальный объект с именем window, который используется для взаимодействия с окном браузера (заголовок, URL-адрес, дерево DOM и т.д.). Браузеры также предоставляют функции для доступа к узлам DOM по их идентификатору, классу и т.д. (которые использовались jQuery для предоставления селекторов CSS), а в последнее время также и по селекторам CSS (querySelector, querySelectorAll). Кроме того, есть возможность вызывать функцию через определенное время (setTimeout) и повторно вызывать ее (setInterval). Исключая подобное (и другие API браузера), эта среда похожа на QML/JS.

Еще одно отличие заключается в том, как JS может отображаться внутри HTML и QML. В HTML вы можете выполнять JS только во время начальной загрузки страницы или в обработчиках событий (например, загрузка страницы, нажатие мыши). Например, ваш JS обычно инициализируется при загрузке страницы, что сравнимо с Component.onCompleted в QML. По умолчанию вы не можете использовать JS в браузере для привязки свойств (AngularJS расширяет дерево DOM, чтобы разрешить это, но это далеко от стандартного HTML).

В QML JS гораздо более является объектом первого класса и гораздо глубже интегрирован в дерево рендеринга QML. Что делает синтаксис более читабельным. Помимо этих различий, люди, которые разрабатывали приложения HTML/JS, должны чувствовать себя как дома, используя QML/JS.

Подробности о среде выполнения JavaScript в QML, ее отличиях от браузеров и ее ограничениях можно прочесть в статье «Хост-среда JavaScript в QML»

Теги

GUI / Графический интерфейс пользователяJavaScriptQMLQtQtQuickПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.