Book Image

AMP: Building Accelerated Mobile Pages

By : Ruadhan O'Donoghue
Book Image

AMP: Building Accelerated Mobile Pages

By: Ruadhan O'Donoghue

Overview of this book

Google introduced the Accelerated Mobile Pages (AMP) project to give mobile users lightning-fast response times when accessing web pages on mobile devices. AMP delivers great user experiences by providing a framework for optimizing web pages that otherwise would take much longer to load on a mobile platform. This book shows how to solve page performance issues using the mobile web technologies available today. You will learn how to build instant-loading web pages, and have them featured more prominently on Google searches. If you want your website to succeed on mobile, if you care about SEO, and if you want to stay competitive, then this book is for you! You will go on a mobile web development journey that demonstrates with concrete examples how to build lightning-fast pages that will keep your visitors on-site and happy. This journey begins by showing how to build a simple blog article-style web page using AMP. As new concepts are introduced this page is gradually refined until you will have the skills and confidence to build a variety of rich and interactive mobile web pages. These will include e-commerce product pages, interactive forms and menus, maps and commenting systems, and even Progressive Web Apps.
Table of Contents (24 chapters)
Title Page
Credits
About the Author
Acknowledgements
About the Reviewer
www.Packtpub.com
Customer Feedback
Preface
14
Actions and Events
16
amp-bind Permitted Attribute Bindings

The Action and Event model in AMP


Earlier, we had our first encounter with events and actions in AMP. This is like a constrained version of the JavaScript event model. You can attach event listeners and define handlers for events on AMP page elements using the on attribute.

Attaching event handlers with the on attribute

An event handler can be attached to any element, HTML or AMP-HTML, with the on attribute, using the following syntax:

on="event:target[.action]"

When AMP encounters this markup on an element, it listens for event event on the element. When it fires, it searches for an element with ID target, and applies action action. The action component is optional. When absent, the default action for target will be fired, if it has one.

We've seen this a few times already. For example, when we defined buttons to open and close our amp-sidebar menu, we used: <svg ... on="tap:sidenav.open" ... > and <svg ... on="tap:sidenav.close" ... >. So, when there was a tap on our SVG open or...