Ajax là tốc ký cho cụm từ, Asynchronous JavaScript and XML, có nghĩa là XML và JavaScript không đồng thời. Nó là một kỹ xảo phát triển hệ web để tạo nhiều phần mềm ứng dụng web tương tác được với người dùng. Mục đích là để làm ra các trang web cảm nhận sẵn sàng đáp lại nhiều hơn bằng cách trao đổi những lượng dữ liệu nhỏ với máy chủ ở hậu trường, vậy cho toàn thể trang web không phải bị tải một lần nữa mỗi lần người dùng yêu cầu một thay đổi. Điều này có nghĩa là để gia tăng sự tương hoạt, tốc độ, và thực năng cho sử dụng của trang web.
Giống như từ DHTML, LAMP và SPA, Ajax không phải chính nó là một công nghệ mà là một thuật ngữ nói về một tập hợp bao gồm một nhóm các công nghệ khác. Kỹ xảo Ajax dùng sự phối hợp của những công nghệ dưới đây:
- XHTML (hoặc HTML) và CSS, cho đánh dấu chuẩn và có thông tin phong cách.
- DOM được truy cập với một ngôn ngữ ra văn mã làm việc bên máy khách thay vì máy chủ trên một hệ web, nhất là những thực hiện ECMAScript gần như là JavaScript và JScript, để biểu dương một cách năng động và tương tác với thông tin trên mà hình.
- Vật thể XMLHttpRequest dùng để trao đổi dữ liệu bất đồng thời với máy chủ trên mạng web. Trong vài khuôn khổ Ajax và trong những tình huống nhất định, một vật thể IFrame được dùng thay vì vật thể XMLHttpRequest để trao đổi dữ liệu với máy chủ, và trong những sự thực hiện khác, chúng có thể sử dụng những cái thẻ
được đem thêm vào một cách năng động. - Đôi khi XML được dùng như khuôn khổ để chuyển dữ liệu giữa máy chủ và máy khách, mặc dù bất cứ khuôn khổ nào cũng sẽ làm được việc, tính luôn cả HTML đã được cho vào khuôn khổ từ trước, văn bản giản dị, JSON và ngay cả EBML. Những tệp này có thể được tạo ra một cách năng động bằng cách dùng loại văn mã nào đó bên phía máy chủ.
Lý lẽ bào chữa nòng cốt cho phong cách lập trình Ajax là để vượt qua những đòi hỏi tải các trang web do trung gian HTML/HTTP hoà giải. Ajax tạo những điều kiện khởi xướng tất yếu cho diễn tiến những giao diện phức tạp, trực giác, động thái, và tập trung vào dữ liệu cho các trang web – sự nhận thức khung thành đó vẫn còn là một việc làm đang tiến triển.
Các trang web, không giống nhiều ứng dụng bản xứ, thì kết đôi lỏng lẻo, chủ ý là dữ liệu chúng biểu thị không có ràng buộc chặt chẽ với các nguồn dữ liệu và đầu tiên phải được sắp đặt vào hàng ngũ một trang khổ HTML trước chúng có thể biểu thị tới một tác nhân người dùng trên máy khách. Thế nên các trang web phải tải lại một lần nữa mỗi khi người dùng cần xem những bộ dữ liệu khác biệt. Bằng cách dùng vật thể XmlHttpRequest để yêu cầu và trả lại dữ liệu mà không cần phải tải lại một lần nữa, lập trình viên vượt qua được yêu sách này và làm cho trang web kết đôi lỏng lẻo đó đối xử như là một phần mềm kết đôi chặt chẽ, nhưng với một thời gian tụt lại nhiều biến đổi hơn cho dữ liệu đi xuyên qua một “đường truyền” dài hơn đi tới một trình duyệt web từ xa.
Cho thí dụ, trong một ứng dụng mặt bàn cổ điển, một lập trình viên có sự lựa chọn đưa dân đến một bộ điều khiển hiện cây với tất cả dữ liệu cần thiết khi khung đối thội tải lúc đầu, hoặc với chỉ dữ liệu thượng đỉnh để có thể tải lẹ hơn, nhất là khi bộ dữ liệu thì rất lớn. Trong trường hợp thứ hai, phần mềm đã có thể sẽ tìm thêm đem về nhiều dữ liệu vào cái điều khiển hiện cây đó tuỳ thuộc vào cái món người dùng chọn lựa. Hệ chức năng này khó thành đạt được trong một trang web mà không có Ajax. Để cập nhật cái cây đó dựa vào sự chọn lựa của người dùng đã có thể sẽ bắt buộc phải tải lại toàn thể trang đó, dẫn đến một cảm nhận rất cà giật, bất trực giác cho người dùng web đang duyệt dữ liệu trong cái cây đó.