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
About the Author
About the Reviewer
Customer Feedback
Actions and Events
amp-bind Permitted Attribute Bindings

Using forms in AMP

Before we start building forms, let's get the basics out of the way. The first thing to know is that whenever any form is used in an AMP page, then the amp-form extension script must also be included:

<script async custom-element="amp-form" src=""></script>

Submitting forms in AMP

Forms in AMP can be submitted as full page GET requests, or as XHR (or AJAX) GET or POST requests:

  • If you use method="GET" in your form, you must then define a submission endpoint in either the action or action-xhr attribute
  • If you use method="POST" then you must only use action-xhr for your submission endpoint
  • Endpoints must be served on an HTTPS URL, and must not link to the AMP cache CDN
  • Finally, you must also include the target attribute, and it can have a value of either _blank (opens in new window) or _top (opens in current window)


The following inputs are not permitted: <input type=button>, <input type=file>, <input type...