AJAX – Tương lai của Web 2.0
collection by traibingo
1
AJAX - Ansynchronous JAvascripting and XML
Google Map, Google Suggest, Flickr, BackCamp, Ta-da List - đó là một số những ứng dụng
ra đời sau thành công của Gmail - tất cả đều hoạt động dựa trên một công nghệ đóng vai trò cốt
lõi thực hiện các tương tác trung gian giữa người dùng và máy chủ: AJAX.
Nói Ajax là một công nghệ không hẳn đã đúng mà thực ra nó là sự kết hợp của một loạt các công
nghệ khác nhau:
XHTML+CSS với vai trò hiển thị thông tin
Mô hình tương tác và hiển thị động DOM (Document Object Model)
Trao đổi và truy cập/tác động lên thông tin sử dụng XML và XSLT
Nhận thông tin không đồng bộ với đối tượng XMLHttpRequest
Javascript với vai trò kết hợp 4 công nghệ trên lại với nhau
Nếu nói Ajax là một công nghệ mới cũng không hẳn bởi thực ra, việc sử dụng
XMLHttpRequest đã được thực hiện từ rất lâu, cũng như các công nghệ như DOM, XHTML,
XML,… đều đã được biết đến và áp dụng từ rất lâu. Điểm khiến cho Ajax trở thành một hiện
tượng chính là ở chỗ nó là một sự kết hợp hoàn hảo các công nghệ hoàn toàn khác nhau để giải
quyết một vấn đề tưởng như không thể giải quyết - mà việc áp dụng lại rất đơn giản như bạn sẽ
thấy ở phần sau (có thể so sánh nó như việc pha chế Cocktail - tìm được đúng một loại tổ hợp
của các loại rựu để tạo ra một hương vị và cảm giác hoàn toàn khác).
AJAX - SỰ KHÁC BIỆT
Có lẽ bạn đang thắc mắc làm thế nào Ajax lại có thể giải quyết được vấn đề tương tác người
dùng của các ứng dụng web. Thử lật lại vấn đề: bạn cần phải có một cách nào đó để quá trình
tương tác với người dùng không bị ngắt quãng khi ứng dụng cần tương tác với máy chủ. Bạn có
bao giờ nghĩ là sẽ thật tốt nếu như có một "lớp" trung gian đứng đằng sau giao diện của ứng
dụng web đảm nhận việc trao đổi thông tin với máy chủ và sau đó gửi trả kết quả ra giao diện?
Cũng giống như nếu bạn làm giám đốc thì bạn sẽ có các nhân viên cấp dưới đảm nhận việc lấy
thông tin chi tiết về thị trường báo lên cho bạn, bạn chỉ cần ngồi một chỗ, đưa ra quyết định dựa
trên thông tin nhận được và thực hiện các giao dịch với các đối tác.
Đó chính là cơ chế hoạt động của Ajax: nó đóng vai trò như là một lớp trung gian giữa giao diện
bạn thấy trên trình duyệt và máy chủ xử lý thông tin. Có thể mô tả cách thức hoạt động của Ajax
như sau:
AJAX – Tương lai của Web 2.0
collection by traibingo
2
Ajax thực hiện tương tác với máy chủ bằng cách sử dụng đối tượng XMLHttpRequest,
nhận kết quả về dưới dạng XML và phân tích kết quả bằng công nghệ DOM.
Tương tác giữa Ajax và giao diện người dùng được thực hiện thông qua các mã
Javascript và XHTML + CSS.
Hai mô hình dưới đây minh họa 2 cơ chế làm việc hoàn toàn khác nhau: một bên là cơ chế của
các ứng dụng web truyền thống và một bên là ứng dụng web sử dụng công nghệ Ajax.
AJAX – Tương lai của Web 2.0
collection by traibingo
3
Một trong những điểm mấu chốt của công nghệ Ajax là bạn không tương tác trực tiếp với máy
chủ như cách truyền thống mà là qua một lớp trung gian của Ajax. Có thể bạn sẽ hỏi phải chăng
như vậy thì sẽ làm cho cơ chế hoạt động phải qua thêm một bước trung gian và sẽ làm chậm hơn
nữa quá trình tương tác? Thắc mắc trên là hoàn toàn có lý, tuy nhiên, thực tế lại ngược lại: sử
dụng Gmail bạn có cảm giác mọi thứ nhanh hơn. Lý do là:
1) Không phải lúc nào bạn cũng cần phải tương tác với máy chủ. Như trong trường hợp của
Gmail, một khi giao diện của Gmail đã được tải về xong (để ý khoảng thời gian ngắn từ khi bạn
đăng nhập cho đến khi giao diện của Gmail xuất hiện) thì những tác vụ như chuyển từ thư mục
này sang xem thư mục khác không nhất thiết phải hỏi lại máy chủ (tất nhiên với điều kiện dữ liệu
đã có sẵn)
2) Bằng cách chỉ nhận những thông tin cần thiết (ở dạng XML), dung lượng truyền tải giữa
máy tính của bạn và máy chủ sẽ giảm đi rất nhiều. Sau khi bạn giao diện đã được tải về 1 lần,
Ajax sẽ không cần phải tải lại toàn bộ giao diện đó mỗi khi tương tác với máy chủ. Thay vào đó,
Ajax sẽ gởi yêu cầu đến máy chủ và nhận kết quả từ máy chủ về những gì đã thay đổi sau khi
máy chủ thực hiện yêu cầu đó. Ajax sau đó sẽ thông báo cho phần giao diện (thông qua các lời
gọi Javascript) thực hiện các thay đổi tương ứng trên giao diện.
AJAX – Tương lai của Web 2.0
collection by traibingo
4
3) Tương tác giữa phần giao diện và Ajax là tương tác nội bộ bên trong trình duyệt, giúp
cho các thay đổi sẽ được thể hiện gần như tức thì.
Mô hình sau thể hiện những gì diễn ra giữa Giao diện ứng dụng web - Ajax - và máy chủ:
Để ý là chu kỳ tương tác giữa bạn và Ajax mang tính chất ngẫu nhiên và rất thường xuyên, trong
khi đó các tương tác giữa Ajax và máy chủ xảy ra với một chu kỳ dài hơn nhiều.