За последние две недели мы совершили поездку в оба конца XUL. Мы рассмотрели просмотр , поиск и навигацию . Но как насчет реальных последствий использования UXL? Давайте рассмотрим это сейчас.
Но никто не использует Mozilla …
Согласно текущим оценкам, Mozilla 1.0+ / Netscape 6.0+ является предпочтительным браузером для 2–20% пользователей Интернета. Когда AOL наконец решит предоставить какую-то версию Netscape своим клиентам, это число может значительно возрасти. Но ты прав. Большая часть сети использует Internet Explorer, и это вряд ли изменится в ближайшем будущем.
Вопрос в том, хотите ли вы, как ведущий веб-разработчик, предложить своим посетителям наилучшие впечатления от просмотра? Вы хотите, чтобы возможности произвести впечатление на потенциальных клиентов и показать им возможности создания «богатых» клиентов, которые могут быть развернуты в Интернете? Изучение XUL и демонстрация своего таланта с его помощью может принести это жизненно важное преимущество в эти дни ограниченного бюджета и жесткой конкуренции.
Чтобы помочь вам на вашем пути, вот некоторая практическая помощь от PHP и phpSniff , отличного проекта PHP, который поможет вам определить, какой браузер использует посетитель.
<?php
// Browser detection script using PHP Sniff
// http://phpsniff.sourceforge.net
// Set this to the URL for your site
$url='http://www.sitepoint.com/'; // Trailing slash important!
// Include phpsniff code
require_once ('phpsniff-2.1.2/phpSniff.core.php');
require_once ('phpsniff-2.1.2/phpSniff.class.php');
// Instantiate phpSniff
$phpSniff=new phpSniff();
// Get the browser type and version
$browserCode=$phpSniff->property('browser');
$browserVer=$phpSniff->property('maj_ver').$phpSniff->property('min_ver');
// Lookout for Mozilla 1.0+ and Netscape 6.0+
if ( ( $browserCode == 'mz' && $browserVer >= 1.3 )
|| ( $browserCode == 'ns' && $browserVer >= 7 ) ) {
// Redirect them to the xul index for the site
header ( 'Location: '.$url.'index.xul' );
} else {
// Send all other browsers to the normal index page
header ( 'Location: '.$url.'index.html' );
}
?>
Я использовал phpSniff версии 2.1.2. Приведенный выше код находится в поисках Mozilla 1.3+ и Netscape 7.0+. Если кто-то, кто заходит на ваш сайт, использует эти браузеры, скрипт перенаправит их в index.xul, который является «улучшенной XUL» версией вашего сайта.
Вы можете разместить этот код в верхней части вашей домашней страницы (например, index.php). Имейте в виду, что вам нужно будет внести некоторые дополнительные изменения, если вы планируете использовать index.php из index.xul с XUL-браузером, в противном случае вы будете перенаправлять средства просмотра Mozilla через бесконечный цикл. И не забудьте включить этот файл .htaccess, который я использовал ранее, чтобы вы могли сгенерировать правильный заголовок MIME в index.xul.
Восход богатого клиента
HTML, формы и JavaScript отлично подходят для вашего типичного сайта. Но всегда есть некоторые вещи, которые, как ни старайтесь, вы просто не можете сделать, такие как создание страницы, которая может обновляться в режиме реального времени (я не говорю здесь о мета-обновлении), или попытка эмулировать настольное приложение онлайн.
За последние годы были сделаны многочисленные подходы для привлечения «богатых клиентов» в Интернет.
Сначала у нас были Java-апплеты, которые извлекают выгоду из превосходной библиотеки классов Java. К сожалению, Swing, библиотека для создания клиентских приложений Java, печально известна своей медлительностью и даже дала самой Java репутацию медленной (что не так). Кроме того, изучение Java, безусловно, не то, что происходит за выходные …
Далее есть Flash. С тех пор, как MX был выпущен, Flash привлекает серьезное внимание как хорошая технология для создания богатых веб-клиентов, и это правильно. Macromedia продвигает Flash как инструмент для создания интерфейса для приложений J2EE и .NET … Но не все так здорово. Flash поставляется в двоичном формате, что может означать очень долгое ожидание ваших пользователей, если вы создали большое приложение. Кроме того, сложно визуализировать сложные приложения Flash, используя серверные технологии, такие как PHP, Perl, ASP (.NET) и Java. Такие проекты, как Ming , достигли удивительного прогресса, но создать форму Flash с помощью PHP все еще гораздо сложнее, чем создать форму HTML.
Наряду с Flash, существует также SVG, стандарт W3 XML, который Adobe и Apache Group сделали очень много, чтобы это произошло. Что хорошего в SVG, так это чистый XML; это означает, что отправка SVG-документа в браузер выполняется так же быстро, как и любая обычная веб-страница. Хотя в SVG можно реализовать такие вещи, как формы, в конце концов, главное в том, что означает SVG: масштабируемая векторная графика . Как язык разметки, он не очень удобен для создания компонентов, которые мы ожидаем от пользовательского интерфейса, таких как кнопки и меню.
XUL — это совершенно другая история. Это разметка, которая была разработана специально для создания графических пользовательских интерфейсов. В этой статье я рассмотрел только простые примеры того, как вы можете выполнить задачи XUL, с которыми веб-разработчики боролись, чтобы получить право на использование DHTML. Все, что вы видели здесь, на самом деле просто улучшения (которые в конечном итоге (X) HTML) для страниц.
Но XUL не останавливается на достигнутом — на самом деле это далеко не так. XUL — это технология, которая позволяет любому, кто способен работать с HTML, создавать полноценные настольные и / или веб-приложения. По сути, все, что вы можете делать с браузером Mozilla (например, открывать файлы, редактировать документы, просматривать изображения, отправлять электронную почту и т. Д.), Можно повторно использовать в приложении XUL.
Даже в наши дни динамичных веб-сайтов, основанных на технологиях, таких как PHP, мы все еще изо всех сил стараемся создавать онлайн-приложения, которые действительно просты в использовании. Добавление контента на веб-сайт должно быть таким же простым, как редактирование документа Word — HTML не требуется. XUL — это технология, которая может сделать это.
«Волшебство» заключается в библиотеке XPCom, которая, помимо прочего, обеспечивает поддержку SOAP и XML-RPC, двух протоколов Web-сервисов (подробнее см. Kevin Yank’s Web Services Demystific ).
«Запуск» приложения, которое действует как WYSIWYG-редактор для HTML и способен обновлять веб-сайт, теперь стало реальностью. XUL для этого приложения может быть обработан PHP на лету, а затем загружен Mozilla за считанные секунды. После запуска пользователи могут редактировать текст без необходимости знать HTML, а затем обновлять свой сайт, после чего приложение XUL доставляет контент в другой скрипт PHP, который действует как сервер SOAP. Mozblog — это настольное XUL-приложение, демонстрирующее этот принцип, позволяющее обновлять блог через XML-RPC. На O’Reilly вы найдете отличную статью об использовании Mozilla SOAP API , в которой описаны все технические детали. Помните, что поддержка WSDL в XPCom все еще находится в стадии разработки, поэтому создание клиентов XUL SOAP — это ручной труд.
В чем подвох всего этого? Откровенно говоря (потеряв больше волос в погоне за XUL!), Я могу сказать, что Mozilla (или кому-то еще) действительно нужно проснуться и начать думать о том, как все выглядит со стороны .
По соображениям безопасности использование API-интерфейса XPCom SOAP из JavaScript, загруженного непосредственно с веб-сайта, требует, чтобы посетитель дал свое явное разрешение, прежде чем он сможет работать в своем браузере. Это хорошо, но требует от разработчиков цифровой подписи JavaScript, чтобы любой, кто загружает ваше приложение, мог проверить ваши учетные данные перед его выполнением. Справедливо…
К сожалению, официальные объяснения того, как вы должны подписывать свой JavaScript, читаются как каракули пивных матов и разбросаны по нескольким сайтам, некоторые из которых выглядят так, как будто их взломали за полчаса. И не начинайте меня с файла README в рекомендованном им инструменте подписи, который направляет вас на этот актуальный URL .
Возможно, я был испорчен PHP на протяжении многих лет, с его отличной документацией и удивительным сообществом, но зачем тратить столько усилий на создание такой замечательной технологии, призванной упростить жизнь разработчикам, а затем оказаться на последнем препятствии? Сравните это с отличной работой, проделанной Microsoft по продвижению ASP.NET и превращению его в технологию, которая действительно нравится его пользователям, и, возможно, вы можете простить мои жалобы. Подобные вещи напоминают мне о днях, когда IBM пыталась продавать настольные операционные системы …
Помимо всего прочего, XUL — отличная технология. Прямо сейчас у него есть официальная печать одобрения «это работает», но краска все еще не высохла. XUL достиг уровня, на котором определенно стоит приложить усилия к обучению, но будьте готовы: еще многое предстоит сделать, чтобы настроить ресурсы как для изучения XUL, так и для его развития. В настоящее время средством разработки № 1 является простой текстовый редактор, хотя прототип Luxor SWT может вскоре привести XUL к Eclipse и привести к другой альтернативе Mozilla, как среде выполнения XUL.
Процитируем самих членов команды Mozilla
«В начале было 3 внешних интерфейса (FE): mac, windows, unix. Каждый из них требовал набора разработчиков. Для добавления новой функции (даже просто кнопки) 3 инженера тратили не меньше одного дня (больше часто, неделю) рабство до завершения функции. Это должно было измениться.
Что если бы мы могли оказаться в мире, где мы могли бы просто написать код один раз? Где непрограммисты могли бы разработать внешний вид продукта, используя стандарты W3C вместо C ++? Где различия в платформах могут быть выражены в таблицах стилей, а не жестко закодированы с помощью #ifdefs?
Тебе нравится этот мир? И мы тоже.»
Ресурсы
Создание приложений с помощью Mozilla — бесплатной онлайн-версии книги О’Рейли, посвященной XUL и XPCom.
XUL Developer Central в Netscape.
XUL Planet — растущая коллекция учебников и ресурсов. Вводное руководство должно помочь разобраться со всеми важными элементами XUL.
Инструментарий XP — больше примеров XUL.
Страница проекта Mozilla XPCOM
MozDev.org — собственная «Sourceforge» от Mozilla для создания XUL-приложений. Множество полезных примеров здесь, или даже начать свой собственный проект.
Часть 1 , Часть 2 и Часть 3 серии руководств IBM по Python и XPCom по реализации логики «код позади» для приложений XUL. Цитата: «Реализация настолько проста, это страшно…»
Введение в XPCOM — довольно техническая серия статей о библиотеке XPCom.
Если вы используете Linux, между XUL и Glade создается «мост», называемый MozGlade , который должен облегчить создание приложений XUL.