В предыдущих главах мы изучили множество компонентов усилителя. Мы также видели, что для работы каждого компонента нам нужно добавить файл javascript.
Например, для amp-iframe добавлен следующий скрипт:
<script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"> </script>
Мы добавили асинхронные теги в скрипт. Это стандарт для amp, поскольку они загружают все файлы javascript асинхронно. Добавлен атрибут настраиваемого элемента с именем компонента, для которого он используется.
Чтобы использовать любой компонент amp, если он не является частью файла javascript core amp, необходимо добавить скрипт, как показано выше.
В основном мы привыкли к написанию большого количества javascript-кода на страницах, а также добавляем javascript-файл с помощью тега script.
Как мы можем сделать это в усилителе? Таким образом, для этого AMP не позволяет писать код скрипта или загружать тег скрипта извне.
У Amp есть собственный компонент, который позаботится о работе, которая должна выполняться дополнительным скриптом, добавленным на страницу. В основном это делается из соображений производительности, чтобы загружать содержимое страницы быстрее, а JavaScript не задерживать рендеринг или вносить какие-либо изменения в DOM.
Это спецификация, предоставленная AMP согласно их официальному сайту для тегов скрипта —
Запрещено, если типом является application / ld + json. (Другие неисполняемые значения могут добавляться по мере необходимости.) Исключением является обязательный тег сценария для загрузки среды выполнения AMP и теги сценария для загрузки расширенных компонентов.
Рабочий пример, где мы можем использовать application / ld + json внутри наших страниц усилителей, показан здесь. Обратите внимание, что мы используем тег script с type = ”application / ld + json” для компонента amp-analytics для запуска трекера.
Точно так же мы можем использовать тег script с type = ”application / ld + json” на других компонентах усилителя, где это необходимо.
пример
<!doctype html> <html amp> <head> <meta charset = "utf-8"> <title>amp-analytics</title> <script async src = "https://cdn.ampproject.org/v0.js"> </script> <script async custom-element = "amp-analytics" src = "https://cdn.ampproject.org/v0/amp-analytics-0.1.js"> </script> <link rel = "canonical" href = "ampanalytics.html"> <meta name = "viewport" content = "width=device-width, minimum-scale = 1,initial-scale = 1"> <style amp-boilerplate> body{ -webkit-animation: -amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation: -amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation: -amp-start 8s steps(1,end) 0s 1 normal both;animation: -amp-start 8s steps(1,end) 0s 1 normal both } @-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}} </style> <noscript> <style amp-boilerplate> body{ -webkit-animation:none; -moz-animation:none; -ms-animation:none; animation:none} </style> </noscript> </head> <body> <h1>Google Amp - Analytics</h1> <amp-analytics> <script type = "application/json"> { "requests": { "event": "http://localhost:8080/googleamp/tracking.php? user=test&account=localhost&event=${eventId}" }, "triggers": { "trackPageview": { "on": "visible", "request": "event", "vars": { "eventId": "pageview" } } } } </script> </amp-analytics> </body> </html>
Когда страница нажата в браузере, трекер будет запущен для просмотра страницы. Это можно увидеть на вкладке сети Google, как показано ниже.