Ajax Framework là một bộ máy ứng dụng web mà có thể phát triển các ứng dụng web sử dụng Ajax, một công nghệ xây dựng trang web động trên phía client. Dữ liệu được đọc từ Server hoặc được gửi từ Server bởi các javascript Requests. Tuy nhiên, những việc xử lý phía Server chỉ là xử lý các Requests, ví dụ, tìm kiếm và lưu trữ dữ liệu. Sẽ dễ dàng hơn khi xử dụng Framework để xử lý các Ajax Requests. và bộ máy Ajax này được dùng để giảm sự chờ đợi của người sử dụng khi các trang đang cố gắng truy cập đến Server. Mục đích của Framework là công cấp bộ máy Ajax này và kết hợp các chức năng phía Server và Client.
Một Framework làm đơn giản công việc của người lập trình với 2 mức: trên phía Client, nó cung cấp các chức năng Javascript để gửi Requests đến với Server. Trên phía Server, nó xử lý các Requests, tìm kiếm dữ liệu và gửi đến cho các trình duyệt… Nhiều Framework rất là phức tạp và chúng chỉ cung cấp các thư viện đầy đủ để xây dựng các ứng dụng web.
Các Framework có thể được nhóm thành các loại theo các đặc điểm và các kỹ năng xử lý Requests từ phía người sử dụng.
- Direct Ajax Frameworks:
Những Framework kiểu này yêu cầu phải thành thạo HTML, CSS và Ajax: Người lập trình được yêu cầu tạo ra các trang trực tiếp bằng HTML, và Framework APIs xử lý trực tiếp các phần tử HTML đó. Những APIs này cung cấp rất nhiều tiện ích hỗ trợ, các giao tiếp, thao tác với DOM, xử lý sự kiện, và thay đổi kich cỡ/di chuyển/làm sống động các thẻ HTML. Những Framework này nhìn chung là hơi nhỏ. Chúng được sử dụng phổ biến cho các website như mua bán, thương mại chứ không được ứng dụng cho những ứng dụng web-based email.
- Ajax component Frameworks:
Những Framework này bao gồm các thành phần đã được xây dựng trước như tabbed panes, sẽ tự động tạo và quản lý các thẻ HTML của riêng chúng. Nhìn chung, các thành phần được tạo ra bởi các thẻ Javascript, XML hay bằng cách thêm các thuộc tính cho các thẻ HTML thông thường. Những Framework này nhìn chung là lớn hơn, được áp dụng cho các ứng dụng web đặc biệt.
Những Framework này đòi hỏi người lập trình phải am hiểu HTML/CSS/Ajax. Ví dụ, các grids, tabs và buttons được cung cấp sẵn, nhưng các form đăng nhập người sử dụng sẽ được tạo ra trực tiếp trong HTML/CSS và được thao tác qua công nghệ Ajax. Những Framework khác chỉ cung cấp đầy đủ các thành phần chỉ để cho các yêu cầu về XML và Javascripts thực hiện.
Ajax component Frameworks có thể được phát triển nhanh hơn Direct Ajax Frameworks, nhưng các điều khiển lại ít hơn, sau đây là những khóa mà Ajax component Frameworks cung cấp:
+ Customization APIs, 1 sự kiện phát sinh khi người sử dụng ngưng soạn thảo trong lưới.
+ Skinning facilities, nơi xuất hiện có thể được thay đổi mà ko bị ảnh hưởng bởi các behavior hoặc Layout
+ Programmatic control, các thẻ chèn động hoặc tự động tạo các thành phần dựa trên dữ liệu của người sử dụng
+ Extensibility, về ý tưởng, tạo ra các thành phần mới dựa trên các thành phần khác, để cho lợi ích của các thành phần cũ dựa trên Framework không bị mất.
- Server – driven Ajax Frameworks:
Một số Framework cung cấp các mô hình phát triển dựa trên các thành phần phía Server theo các cấp độ hỗ trợ của Ajax.
Nhìn chung, các thành phần được tạo ra và thao tác trên Server đều sử dụng ngôn ngữ lập trình phía Server. Các trang sau đó được trả lại bởi sự kết hợp của các thao tác HTML trên phía Server và Client. Hành động của người sử dụng giao tiếp với server thông qua công nghệ Ajax, các mã trên Server tác động tới mô hình thành phần trên phía Server và những thay đổi trên đó sẽ được tự động phản chiếu đến Client.
Những Framework này đòi hỏi các nhà phát triển trên phía Server hiểu rõ sự tiên tốn của cấp độ về sức mạnh và sự thực thi. Ajax Frameworks tăng cường xử lý giao diện hoàn toàn trong trình duyệt bởi vì chúng không chạy các đoạn mã trình bày đó trên Server. Trong mô hình Server – Driven, những tương tác UI có thể trở nên sing động hơn, ví dụ, 1 trường nhập mà tự động hủy bỏ hoặc đồng ý dựa trên đoạn mã phía Server có thể sẽ gây ra nhiều Requests trên mạng. Tuy nhiên, phương pháp này là phổ biến, đặc biệt trong tình huống lợi ích của toàn bộ kiến trúc Ajax có thể không được giữ lại bất cứ khi nào.
Việc mở rộng Framework có thể sẽ đòi hỏi các nhà phát triển hiểu rõ các phần trình bày nào sẽ được xử lý trên phía Server với Client, và sự kết hợp giữa Ajax và mã phía Server như thế nào.