Несмотря на шесть лет, Chrome быстро приближается к среднему возрасту по номерам версий. Chrome 39 был выпущен, и вы, вероятно, его установили. Есть несколько хороших новых функций … плюс одно или два слегка подозрительных дополнения.
ECMAScript 6 Генераторы
Генераторы — это специальные функции, объявленные с function*
которые создают итераторы. Итератор — это объект с методом next()
который вызывается для возврата значения. Функция генератора использует оператор yield
для предоставления следующего значения в последовательности.
Арунода Сусирипала (Arunoda Susiripala) предоставляет базовый пример в Генераторах JavaScript и предотвращении обратного вызова Ад :
function* HelloGen() { yield 100; yield 400; } var gen = HelloGen(); console.log(gen.next()); // {value: 100, done: false} console.log(gen.next()); // {value: 400, done: false} console.log(gen.next()); // {value: undefined, done: true}
Генераторы ECMAScript 6 поддерживаются в Chrome, Opera и Firefox 31+.
Маяк API
Новый Beacon API позволяет отправлять данные на сервер, не дожидаясь ответа. Запросы ставятся в очередь и отправляются браузером как можно скорее, но, что важно, это не задерживает выгрузку текущей страницы или загрузку следующей.
navigator.sendBeacon()
передается URL и данные — возможно, строка или значение FormData. Как правило, его можно использовать при передаче статистической информации, например,
navigator.sendBeacon('/log', 'page-unloaded');
Метод возвращает true
если браузер успешно поставил в очередь запрос маяка. Я не уверен, что вы могли бы сделать, если было возвращено false
но маяки не должны использоваться для основных функций или обмена сообщениями.
API Beacon поддерживается в Chrome, Opera и Firefox 31+.
Элементы управления веб-анимацией
Веб-анимация была представлена в Chrome 36. Идея состоит в том, чтобы разрешить простые CSS3-подобные ключевые кадры и объявления анимации из JavaScript, например
var myanimation = myelement.animate([ { color: "#f00" }, { left: "20em" }, { transform: "rotate(180deg)" } ], { duration: 1000, iterations: 1, delay: 0 });
Преимущество заключается в том, что вы можете контролировать и синхронизировать воспроизведение в соответствии с пользовательским вводом или другими условиями. Chrome 39 добавляет методы воспроизведения, такие как play()
, pause()
, reverse()
, finish()
(переводит анимацию в конечное состояние) и cancel()
(удаляет все эффекты).
Думайте о веб-анимации как о компромиссе между простой CSS3-анимацией и сложным полнокадровым управлением JavaScript с использованием requestAnimationFrame и ваших собственных функций синхронизации. Возможно, это излишне для общих веб-эффектов, но недостаточно для игр. Приложения и презентации могут быть хорошими вариантами использования?
В настоящее время Chrome и Opera являются единственными браузерами, поддерживающими веб-анимацию. В ночных клубах Firefox есть поддержка и полифилл, но технология еще не будет стабильной в течение некоторого времени.
Манифест веб-приложения
Не путать с манифестом кэша приложений. Манифест веб-приложений представляет собой файл JSON, в который можно помещать метаданные, такие как имя, начальный адрес, значки, режим отображения, ориентация и т. Д.
Вам понадобится link
в вашей HTML- head
:
<link rel="manifest" href="manifest.json">
и сам файл манифеста, например
{ "name": "My Application", "icons": [{ "src": "icon/lowres", "sizes": "64x64" }, { "src": "icon/small", "sizes": "64x64" }, { "src": "icon/hd_hi", "sizes": "128x128", "density": 2 }], "start_url": "/index.html", "display": "fullscreen", "orientation": "landscape" }
В конечном итоге это означает, что мы можем удалить 57 вариантов размера иконок iOS из верхней части каждой страницы… при условии, что Apple решит внедрить эту технологию в Safari!
Кросс-браузерная поддержка неоднородна. Firefox использует манифест для своей торговой площадки, но, похоже, существуют некоторые различия в именах свойств.
Режим погружения Windows 7
Переход в иммерсивный режим в Windows 7 делает Chrome немного похожим на полноэкранное приложение Metro для Windows 8. Как ни странно, он помещает полупрозрачную панель задач в стиле Chrome OS над панелью задач Windows — со своей собственной кнопкой запуска и часами.
Почему? Если пользователи Windows 7 хотят использовать Windows 8, они могут выполнить обновление. Однако есть причина, по которой многие Windows 7 предпочитают придерживаться этой ОС: им не нужна Windows 8!
Меня также смущает то, что Google настаивает на добавлении виджетов Chrome OS в другие операционные системы. Значок приложения Chrome здесь и там прекрасно, но копировать нативные функции бессмысленно. Возможно, они надеются заманить людей на Chrome OS, но раздражать их не поможет.
Разные обновления
Еще несколько мелких особенностей …
- Теперь вы можете установить бесплатные приложения Chrome из Play Store без входа в систему.
-
scrollTop
иscrollLeft
теперь возвращают доли пикселя на экранах с высоким DPI / Retina. Если вы думали, что пиксельное совершенство было плохим, подождите, пока клиенты не начнут требовать субпиксельного совершенства! - Сохраненные пароли теперь можно редактировать.
- 64-разрядная версия Chrome теперь является единственной версией, доступной в Mac OS.
- Шифрование SHA-1 постепенно сокращается в пользу SHA-2.
- Добавлена экспериментальная поддержка значков кнопок расширения внутри меню (установите флажок Включить редизайн панели расширения в about: flags ).
Несмотря на несколько хитроумных дополнений и некоторые догадки Firefox, версия 39 — еще одно отличное обновление. Chrome остается быстрым, стабильным и предпочтительным браузером для почти половины Интернета. Рекомендуемые.