Итак, вышла бета версия (Beta 1) браузера Firefox 1.5. За последнее время это самый впечатляющий релиз из всех. В браузер встроен новый генератор страниц Gecko 1.8, в который включено множество интересных функций. Новое в этой версии:
- SVG
- Canvas
- Колонки CSS3
- JavaScript 1.6
Рассмотрим каждую функцию поближе.
SVG
Все эти годы проект Mozilla SVG project потихонечку развивался, но до недавнего времени вам приходилось скачивать полностью отдельный релиз Мозиллы, чтобы посмотреть, как там все работает. Версия 1.5 - первая версия Firefox, в состав которой включен Mozilla SVG project, благодаря чему перед веб-разработчиками открывается целый новый мир векторной графики. Для начала посмотрите страницы с примерами на сайте Croczilla, непременно поиграйте с интерактивными примерами, что приведены внизу страницы. Подробности о поддержке SVG в Мозилле читайте не страницах "Mozilla Developer Centre"
Canvas
Элемент <canvas> дает доступ к современному API для рисования двумерных объектов на стороне клиента. В будущем обещают поддержку и трехмерной графики. API был придуман в компании Apple для ее элементов приложения Dashboard. Затем API был описан в спецификации с целью стимулировать разработку совместимых реализаций в других браузерах.
Потенциал элемента <canvas> огромен. Пока примеры еще очень примитивные, интерактивная демонстрация Дарена Фишера (Darin Fisher) дает представление о том, что нас ждет в будущем. Приложение Canvas shell является удобным инструментом для работы с API. На сайте developer.mozilla.org уже выложены первые страницы замечательного учебника по Canvas. А вот эта демонстрация (изначально она создавалась для Safari 1.3) также производит неизгладимое впечатление.
Благодаря <canvas> Firefox приобретает способность генерировать из веб-страниц изображения, что должно привести в будущем к появлению нескольких очень интересных расширений.
Колонки CSS3
Веб разработчики давно мечтали о возможности создавать гибкие многоколоночные страницы (которые сейчас создаются на сайте Herald Tribune с помощью ужасно сложного JavaScript-а) - среди прочих достоинств эта функция позволяла форматировать текст с шириной строки, комфортной для чтения. Модуль CSS3 Multi-column layout позволяет это делать, а движок Gecko 1.8 реализует отчасти эту спецификацию в виде свойств -moz-column-count, -moz-column-width и -moz-column-gap префикса -moz-, что разрешено спецификацией W3C для расширений CSS, специфичных для какого-либо браузера. На то, как работают колонки, вы можете посмотреть на страницах блога Роберта О'Каллахана (Robert O'Callahan) (именно Роберт занимался реализацией многоколоночной функции в Gecko). Документация на Developer Mozilla дает более детальное описание этой функции.
JavaScript 1.6
Согласно документу "Новое в JavaScript 1.6", в языке появилась поддержка E4X, расширены функции работы с массивами и реализованы generics для массивов и строк. Мне не удалось найти какую-либо информацию, объясняющую, что означает последняяя функция, но первые две - весьма любопытны. E4X (расшифровывается как ECMAScript for XML - ECMAScript для XML) - это относительно новая спецификация, которая вводит в язык новый "родной" тип данных - XML. С его помощью вы теперь можете выполнить следующее:
var x = <foo><bar>baz</bar></foo>; alert(x.bar); x.monkey = "good"; alert(x.toXMLString());
for each (var child in x) { alert(x.toXMLString()); }
(Пример взят из письма Аарона Будмана (Aaron Boodman ) в список рассылки Greasemonkey).
По умолчанию поддержка E4X в JavaScript не включается: чтобы включить ее, вам в коде надо прописать следующее <script type="text/javascript;e4x=1">. Предполагаю, что это сделано для того, чтобы сохранить обратную совместимость с существующими страницами.
Расширение функций работы с массивами подразумевает появление нескольких новых методов у класса Array. Самыми интересными из них являются every(), forEach(), map(), filter() и some(). Каждая из этих функций позволяет выполнять определенные операции над каждым членом вашего массива. Фанаты функционального программирования с радостью воспримут эту новость. В старых браузерах эти функции легко можно включить, изменив Array.prototype. На сайте WebReference.com есть статья, подробно рассказывающая об этих новых методах.
Если кто-то знает, что подразумевается под фразой "generics для массивов и строк", напишите комментарий!
Данная статья, лишь краткое описание новинок в Firefox 1.5 с точки зрения веб-разработчика. Для простых пользователей в браузер также внесено много улучшений, например, перемещение табов, кэширование состояния каждой страницы, из-за чего перемещения вперед-назад становятся молниеносными, и много других улучшений с точки зрения интерфейса (и производительности) для Mac-версии браузера. На Burning Edge выложен неофициальный ChangeLog.
Грядут удивительные времена.