• Browser là một ứng dụng, không chỉ đơn thuần hiển thị nội dung.
Khác với ứng dụng Web truyền thống là mọi xử lý dữ liệu đều nằm ở phía Web Server, Browser chỉ dùng để hiển thị thông tin. Với AJAX, một phần xử lý được đưa về Browser, công việc xử lý này được viết bằng JavaScript, thực hiện nhận, xử lý, trả lời thông số đầu vào và quản lý việc gửi yêu cầu tới Web Server.
Hình 2.19. Vòng đời của một ứng dụng web truyền thống. Tất cả trạng thái của user với ứng dụng được lưu giữ trên server. User luôn nhìn thấy một trang hoàn chỉnh, nhưng sẽ không
Hình 2.20. Vòng đời của ứng dụng Ajax. Khi user vào hệ thống, một giao diện hoàn chỉnh được tải về phía trình duyệt. Ứng dụng này phản ứng lại sự tương tác của user ngay lập tức, hoặc “ngấm ngầm” request tới server ở phía sau, không làm gián đoạn tới quá trình tương
tác của user
• Server chỉ truyền tải dữ liệu, không truyền tải toàn bộ nội dung hiển thị.
Ứng dụng Web truyền thống server luôn luôn gửi phúc đáp (Response) về phía Client là toàn bộ dữ liệu và nội dung hiển thị, tức là một trang mới hoàn toàn. Trong khi đó, giả sử người dùng sử dụng một giỏ hàng trực tuyến, khi họ thay đổi số lượng hàng hoá trong giỏ hàng thì những gì họ cần thực sự là thông tin mới cập nhật về giỏ hàng. Với AJAX, khách hàng có thể gửi một Request không đồng bộ đến server và nhận về thông tin cập nhật, còn toàn bộ các hình ảnh hay nội dung hiển thị vẫn được giữ nguyên ở phía khách.
Dưới đây là sự so sánh về lưu lượng dữ liệu truyền đi trong các lần tương tác của user và application của ứng dụng web truyền thống và ứng dụng Ajax.
Hình 2.21. Từ trên xuống dưới của việc “đẩy” nội dung từ server: (A) là ứng dụng web cổ điển, (B) là ứng dụng Ajax. Nếu như ứng dụng cứ tiếp tục, lưu lượng này sẽ bị dồn lên rất
cao(C).
• Người sử dụng tương tác động và liên tục với ứng dụng
Browser cung cấp 2 công cụ để đưa dữ liệu vào là hyperlink và form. Các công cụ này chỉ có hiệu quả khi người sử dụng click vào link hoặc submit form. Nhưng có một nhược điểm là sau khi click hoặc submit thì người dùng phải chờ một thời gian để dữ liệu được truyền đi và nhận dữ liệu mới, trong thời gian đó có thể trang cũ vẫn hiển thị thêm một chút. AJAX được hỗ trợ tương tác không đồng bộ để khắc phục nhược điểm này, người dùng cứ tương tác với application, với mỗi sự tương tác đó, sẽ kích hoạt một sự kiện và được gọi tới server, cứ như vậy, bao giờ có kết quả trả về từ server thì sẽ được bổ sung vào giao diện cua user, trở lại ví dụ giỏ hàng trực tuyến, người sử dụng có thể bỏ
hàng vào giỏ ngay lập tức khi họ nhấp chuột. Nếu code ở phía Client mạnh thì có thể xử lý phần này dễ dàng.
• Lập trình thực sự và có quy tắc
Như đã nói ở trên, sử dụng AJAX sẽ chuyển một phần xử lý thông tin xuống phía Client nên phần code JavaScript ở phía khách sẽ phức tạp hơn các ứng dụng Web truyền thống.
2.6.5 Các thành phần của AJAX
AJAX không phải là một công nghệ đơn. Nó là tập hợp của 4 công nghệ bổ sung cho nhau:
• JavaScript:
JavaScript là một ngôn ngữ script được thiết kế để đưa vào trong ứng dụng. Bộ dịch của JavaScript là các Web Browser cho phép lập trình tương tác. Các ứng dụng AJAX được viết bằng JavaScript.
• Cascading Style Sheet:
CCS cung cấp khả năng định nghĩa (các định nghĩa này có thể dùng lại được) kiểu hiển thị của các nguyên tố trong trang Web. Nó cung cấp một phương pháp định nghĩa và áp dụng chọn kiểu hiển thị thích hợp mạnh và đơn giản. Trong một ứng dụng AJAX, giao diện người dùng có thể tương tác và thay đổi bằng CSS.
• Document Object Model (DOM):
DOM biểu diễn cấu trúc trang Web như một tập hợp các đối tượng có thể lập trình được, có thể xử lý được bằng JavaScript. Trong các ứng dụng AJAX, DOM cho phép thay đổi từng phần tử của trang Web trong khi đang vận hành.
• XMLHttpRequest object:
Đối tượng XMLHttpRequest cho phép người lập trình Web có thể nhận dữ liệu từ Web Server như một hoạt động nền. Định dạng dữ liệu là XML, nhưng nó làm việc tốt với mọi dữ liệu text.