В аду нет такой ярости, как презираемый JavaScript

Высокая цена исключения JavaScript из электронной почты и возможное средство от Google

По мере того, как цифровой мир все больше влюбляется в магию JavaScript в реальном времени (Node, Angular, React, Vue и т. д.), такая среда, как электронная почта, которая принципиально не способна запускать сценарии, не может не казаться неадекватной.

Ладно, возможно, «принципиально недееспособный» — это слишком сильно. Технически электронная почта могла запускать JavaScript, но это не так. Это связано с тем, что проблемы безопасности, присущие платформе, благодаря которой любой нигерийский принц и его брат могут связаться с вами напрямую, когда им заблагорассудится, заставили нас приложить все усилия TSA к электронной почте; весь ваш HTML должен быть упакован в запечатанный пакет весом 12 унций, а тот JavaScript, который у вас там есть, должен исчезнуть, потому что его можно использовать как оружие.

И это именно проблема: страх перед вооруженным javascript. Это страх, из-за которого возможности дизайна и UX электронной почты были отнесены к сырому, скучному царству статического текста, изображений и функциональности уровня 1995 года. В то время как остальная часть Интернета быстро становится более реактивной, отзывчивой и даже прогнозирующей. Наши базовые ожидания в отношении цифровых медиа постепенно поднимаются все выше и выше, в результате чего недостатки электронной почты становятся все более очевидными.

Как будто мы получаем представление о том, насколько плох был бы Интернет без современных языков сценариев; что-то вроде «Это прекрасная жизнь», но с JavaScript вместо Джимми Стюарта.

Но похоже, что перемены наконец-то могут зародиться. На протяжении десятилетий ничего не делалось для решения этой проблемы; если не считать Кнопки быстрого действия. Вероятно, потому, что разработчики почтовых клиентов должны что-то с этим делать, и никто не хочет рисковать тем, что его назовут рискованным или излюбленным почтовым клиентом для похитителей личных данных в обмен на то, что они первыми поддержат взаимодействие или привязку данных в своих приложениях. электронные письма. Но в феврале (2018 г.) Google объявил, что они (то есть Gmail) вступят на эту неизведанную территорию.

⚡4email

Введите AMP для электронной почты или, более мягко, ⚡4email, которое представляет собой приложение для электронной почты, состоящее из отдельных частей библиотеки AMP (ускоренных мобильных страниц). По сути, AMP — это подмножество HTML, которое позволяет вам использовать урезанные функции HTML и JavaScript в обмен на почти мгновенную загрузку веб-страниц. Оперантная идея здесь урезана. Поскольку AMP уже предоставил ограниченную по функциям библиотеку JavaScript в аккуратном маленьком пакете, Google, похоже, решил, что это будет хорошая платформа для внедрения более продвинутых функций в электронную почту, потенциально избегая недостатков безопасности и пропускной способности.

Одна особенно полезная функция, которая была предварительно упакована с существующей платформой AMP, — это способ обработки скриптов. Вот описание ограничений скрипта из документации AMP:

[скрипты] запрещены, если тип не application/ld+json. (При необходимости могут быть добавлены другие неисполняемые значения.) Исключение составляет обязательный тег скрипта для загрузки среды выполнения AMP и теги скрипта для загрузки расширенных компонентов.

Таким образом, разрешены только JSON и другие неисполняемые JavaScript. Это именно то, что нам нужно для электронной почты: разрешить скрипты, которые закладывают основу для привязки данных или другой магии DOM, предотвращая при этом исполняемые файлы; которые лежат в основе проблемы безопасности JavaScript.

Вот несколько вещей, которые это сделало бы возможным:

  • Интерактивные формы, которые можно заполнять и отправлять в теле письма.
  • Интерактивные селекторы, которые позволяют пользователям выбирать один или несколько элементов из списка; выбор активирует «активное» состояние выбранного элемента.
  • Шаблоны без логики и рендеринг списка (Mustache.js)
  • Настраиваемая интерактивность с привязкой данных и выражениями.
  • Интерактивные аккордеонные меню, боковые панели, карусели и лайтбоксы
  • Относительные метки времени (позволяет форматировать даты как «*** время назад» — например, «3 часа назад»)

Это не решает всей проблемы, конечно. Отнюдь не. Функциональность электронной почты будет отставать от остального Интернета на века. Но в данном случае важна мысль. Тот факт, что кто-то, не кто иной, как Google, отважился на проблемную территорию написания сценариев в электронной почте и представил некоторые функции, которые очень похожи на разбавленную версию тех сексуальных фреймворков JS, от которых все так без ума, имеет огромное значение для будущего. средний.

Надеюсь, это подтолкнет другие почтовые клиенты, по крайней мере, к поддержке этих новых функций. Как только мы зайдем так далеко, нетрудно представить себе экосистему (не говоря уже о новых бизнес-сервисах), которая возникнет вокруг этого нового стандарта и придаст ему достаточный импульс, чтобы потенциально помочь вытащить электронную почту из пустоты интерактивности, которая нанесла ей такой ущерб. длинная.