A set of web development techniques using many web technologies on the client side to create asynchronous web applications. It allows web applications to send and retrieve data from a server asynchronously without interfering with the display and behavior of the existing page.