AJAX - sự kết hợp kỳ diệu của công nghệ web
Đề tài kỹ thuật vốn luôn khô khan và không mấy thú vị, nhưng nhng
câu chuyện về quá trình phát triển của AJAX trong không gian ứng
dụng Internet đa phương tiện đã to nên sức hút khó tin xuyên suốt
năm 2005.
Thế hệ Web 2.0 chỉ vừa bắt đầu và sẽ phải trải qua cả một chặng đườngi
phía trước để có thể thay đổi những gì vốn đã trở nên quen thuộc vi mọi
người hin nay. Đóng vai trò then chốt trong giai đoạn thứ hai ca web là tổ
hợp công nghệ AJAX. Dù thế giới chưa thực sự sẵn sàng đón nhận, nhiu
người cho rằng các ứng dụng AJAX đang phát triển còn nhanh hơn cả định
luật Moore - động lực thúc đẩy ngành đin toán gốc.
AJAX là gì?
AJAX, viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML
không đồng bộ), là bộ công c cho phép tăng tốc độ ứng dụng web bằng
cách cắt nhỏ dliu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải li
toàn bộ trang web. AJAX không phải một công nghệ đơn lmà là sự kết hợp
mt nhómng nghvới nhau. Trong đó, HTML và CSS đóng vai hin thị
dữ liu, mô hình DOM trình bày thông tin động, đối tượng
XMLHttpRequest trao đổi dữ liệu không đồng bộ vi máy chủ web, còn
XML là định dạng chủ yếu cho dữ liệu truyền. Đây đều là công nghệ sẵn có
nhưng Javacript đã lắp ráp chúng lại để thực hiện những "sứ mnh" đáng
khâm phục.
Hầu hết các câu chuyện về nguồn gốc của AJAX được bắt đầu từ khi
Microsoft phát triển công nghệ Remote Scripting vào năm 1998. Tuy nhiên,
phương pháp tải không đồng bộ nội dung trên một trang web đã xuất hin
trong thành tố IFRAME của Internet Explorer 3 (1996) và thành tố LAYER
của Netscape 4.0 năm 1997. Khi gii thiệu Internet Explorer 4.0, Microsoft
đã sử dụng mô hình đối tượng tài liệu DOM khác biệt. Đến năm 2000,
Netscape hoàn toàn đánh mất thị trường trình duyệt vào tay hãng phần mm
của Bill Gates và thành tố LAYER cũng không còn được các chuyên gia
phát trin web chú ý tới.
Phải vài năm sau, AJAX mới lại lôi kéo được sự quan tâm của giới công
nghệ và trở thành công cụ cải tiến giao diện người dùng cho ứng dụng web.
Thuật ngữ này cũng chỉ mới xuất hiện cách đây 1 năm (tháng 2/2005) trong
bài viết ni tiếng của Jesse James Garrett trên trang Adaptive Path. Từ đó,
AJAX trở thành trung tâm trong mọi câu chuyện liên quan đến thế hệ Web
2.0.
AJAX hoạt động như thế nào?
Ứng dụng web truyn thống (trái) và
ứng dụng AJAX. (Adaptive Path)
Từ lâu, mọi người đã tưởng tượng ứng dụng máy tính rồi sẽ được lưu và
chạy hoàn toàn trên web thay vì nằm bó buộc trong ổ cứng. Dù vậy, viễn
cảnh đó vẫn chưa thể xảy ra do ứng dụng web bị hạn chế bởi nguyên rằng
tất cả các thao tác phải được thực hiện thông qua HTTP (HyperText Transfer
Protocol - Giao thức truyn tải qua siêu liên kết). Những hoạt động của
người sử dụng trên trang web sẽ tạo ra một yêu cầu HTTP tới server. Máy
chủ thực hiện một số khâu xử lý như ly lại dữ liệu, tính toán, kiểm tra sự
hợp lệ của thông tin, sửa đổi bộ nhớ, sau đó gửi lại mt trang HTML hoàn
chỉnh tới máy khách. Về mặt k thuật, phương pháp này nghe có vẻ hợp lý
nhưng cũng khá bất tiện và mất thời gian, bởi khi server đang thực hiện vai
trò của nó thì người dùng sẽ làm gì? Tất nhiên là chờ đợi.
Để khắc phục hạn chế trên, các chuyên gia phát triển giới thiệu hình thức
trung gian - cơ chế xử lý AJAX - giữa máy khách và máy chủ. Điều này
giống như việc tăng thêm một lớp giữa cho ứng dụng để giảm quá trình "đi
li" ca thông tin và giảm thời gian phảnng. Thay tải lại (refresh) toàn
bộ một trang, nó chỉ nạp những thông tin được thay đổi, còn ginguyên các
phần khác. Vì thế, khi duyệt mt trang hỗ trợ AJAX, người sử dụng kng
bao giờ nhìn thấy một cửa sổ trắng (blank) và biểu tượng đồng hồ cát - dấu
hiu cho thy máy chủ đang thực hiện nhiệm vụ. Ví dụ, trong một website
ảnh, vi ứng dụng truyền thng, toàn bộ trang chứa các ảnh sẽ phải mli từ
đầu nếu có một thay đổi nào đó trên trang. Còn khi áp dụng AJAX, DHTML
chỉ thay thế đoạn tiêu đề và phần vừa chỉnh sửa, do vậy tạo nên các giao
dịch trơn tru, nhanh chóng.
Tương tác đồng bộ trong ứng dụng web
truyền thng (trên) và dị bộ trong ứng
dụng AJAX. (Adaptive Path)
"Mọi thao tác của người sử dụng sẽ gửi lnh JavaScript tới bộ xử lý AJAX,
thay vì tạo ra một yêu cầu HTTP (HTTP request) và truy vấn tới máy chủ",
Jesse James Garrett đã ghi trong bài viết đầu tiên định nghĩa về thuật ngữ
này. "Nếu cần từ server, như tải về bổ sung giao diện hay nhận dữ liu
mi, AJAX sẽ truyn yêu cầu tới máy chủ một cách không đồng bộ, thông
thường sử dụng XML, mà không làm gián đoạn sự tương tác của người dùng
với ứng dụng web".
Các ứng dụng AJAX phổ biến
Google Suggest hin thị các thuật ngữ gi ý gần như ngay lập tức khi người
sử dụng chưa gõ xong từ khóa. n với Google Maps, mọi người có ththeo
dõi những thay đổi, xê dịch, kéo thả bản đồ như trên môi trường desktop.
Google Suggest và Google Maps là hai ví dụ nổi bật về phương pháp ứng
dụng web thế hệ mới. Hãng dịch vụ tìm kiếm hàng đầu thế giới đã đầu tư rất
nhiu vào việc phát trin AJAX. Hầu như mọi chương trình họ gii thiệu
gần đây, từ Orkut, Gmail đến phiên bản thử nghiệm Google Groups, đều
những ứng dụng AJAX.
Nhiều công ty khác cũng đang nối gót xu thế này như trang chia sẻ ảnh
Flickr (hiện thuộc Yahoo) hay công c tìm kiếm A9.com ca Amazon.
Yahoo dự định trong vài tuần tới sẽ ra mắt bản Yahoo Mail Beta 1 sử dụng
AJAX trên toàn thế giới (đang được thử nghiệm giới hn). Hòm thư mới sẽ
được trang bị thêm nhiều tính năng thuộc Web 2.0 như RSS, chế độ xem thư
trước (preview)... Microsoft cũng đang triển khai chương trình Windows
Live Mail và Windows Live Messenger hỗ trợ AJAX.