У меня есть существующий веб-сайт статей со сложным пользовательским интерфейсом, таким как система комментариев и система голосования. Если я создаю страницу Google AMP, нужно ли мне также включать весь сложный пользовательский интерфейс (система голосования, комментариев)? Если я не включу это в Google AMP, разве посетители не смогут только просматривать статью, но не смогут взаимодействовать с функциями, которые есть на моем веб-сайте? Не слишком ли много работы для воссоздания еще одной расширенной версии страниц поверх существующих страниц?
AMP для сложной страницы
Ответы (1)
Это зависит от того, насколько сложен ваш веб-сайт, но вы, вероятно, захотите последовать примеру GitHub и спрятать некоторые дополнительные функции на настольном сайте. Я думаю, что страницы AMP должны быть сокращены до содержания статьи, по крайней мере, до тех пор, пока проект AMP не предложит пользовательский элемент для форм. Вверху или внизу страницы должна быть четкая ссылка/кнопка «Использовать настольный веб-сайт», чтобы те, кто хочет в полной мере взаимодействовать с веб-сайтом, могли это сделать.
Это позволяет предоставлять основной контент мобильным пользователям в оптимизированной форме и с оптимальной скоростью, а мобильные пользователи часто находятся в пути, поэтому они могут не возражать против того, чтобы дождаться, пока они окажутся на своем рабочем столе, чтобы прокомментировать или проголосовать за что-то. Затем те пользователи, которые используют мобильное устройство, но все еще хотят комментировать или голосовать на своем мобильном устройстве, могут по-прежнему делать это, переключаясь на сайт для настольных компьютеров.
Я говорю это, потому что я думаю, что GitHub имеет очень много потенциальных взаимодействий с редактированием кода, обсуждением проблем / PR и так далее, и это может быть излишним для загрузки на мобильном устройстве, учитывая, что не так много людей собираются использовать эти вещи на мобильное устройство. Они будут читать сообщения и код, но не обязательно будут взаимодействовать в этот момент.
Я также говорю это, потому что я разрабатывал доску объявлений/форум, используя только AMP-HTML (и Perl на серверной части), чтобы проверить, что на самом деле возможно с использованием iframes для форм с использованием amp-iframe
.
Хорошая новость в том, что это можно сделать, это работает. Я смог использовать iframes для публикации новых тем, ответов и так далее. Плохая новость - реализация...
План, который я придумал, состоял в том, чтобы загружать элементы form
и input
через iFrame, передавая важные параметры, такие как номер сообщения и идентификатор автора, через строку запроса в URL-адресе src
iFrame, который будет создан программно с использованием языка шаблонов. Это уже некрасиво.
Затем я использую JavaScript внутри iFrame, чтобы получить параметры из строки запроса и добавить их в элементы input
(type="hidden" вместе с атрибутом name
и URL-адресом action
, на который отправляется форма).
Затем я устанавливаю target="_top"
на form
, чтобы он перезагружал всю страницу при отправке. Чтобы все это работало, вам потребуются следующие атрибуты элемента AMP-IFRAME: allow-scripts
allow-forms
allow-top-navigation
.
Мне пришла в голову мысль использовать AJAX, но в дальнейшем это стало еще более запутанным из-за какой-то проблемы с CORS, которую я, честно говоря, не удосужился исправить. Мне также пришла в голову мысль, что я, вероятно, все делаю неправильно, и, вероятно, есть какой-то супер простой способ сделать это.
Этот метод позволяет мне создавать полезные формы, при этом проходя проверку AMP. Вопрос: действительно ли оно того стоит? Очевидно, что вы можете использовать любую технологию на стороне сервера, которую захотите, но она, вероятно, будет сильно отличаться от реализации вашего текущего веб-сайта для настольных компьютеров, и может потребоваться немало времени для разработки, тестирования и повышения безопасности с точки зрения безопасности.
Я лично считаю, что это не стоит дополнительного времени. Я считаю, что проект AMP в конечном итоге будет включать amp-form
пользовательский элемент, когда они разработают достаточно средств для ограничения их использования.