Tải bản đầy đủ (.pdf) (7 trang)

AJAX LÀ GÌ?

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1009.01 KB, 7 trang )

AJAX LÀ GÌ?

JavaScript, ngôn ngữ lập trình chạy trên trình duyệt đã quá quen thuộc với thế giới web
kể từ khi Netscape phát minh ra nó. Sự phát triển của công nghệ và nhu cầu người sử
dụng ngày càng cao buộc các nhà phát triển tạo ra một kĩ thuật khác cho phép xử lý các
tác vụ phức tạp hơn. Tháng 2/2005, trên Internet bắt đầu lan truyền thuật ngữ Ajax như là
một kỹ thuật mới cho ứng dụng web. Những thành công vang dội và sự hấp dẫn kì lạ của
Gmail, Google Suggest và Google Maps đã khiến cho Ajax được chú ý một cách đặc
biệt.
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 hiện 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 giới 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 mềm của Bill
Gates và thành tố LAYER cũng không còn được các chuyên gia phát triển 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 nổi 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 là viết tắt của Asynchronous JavaScript and XML - kỹ thuật kết hợp hai tính năng
mạnh của JavaScript được các nhà phát trển đánh giá rất cao :
o Gửi yêu cầu (request) đến máy chủ mà không cần nạp lại trang
o Phân tách và làm việc với XML
Các ứng dụng Ajax xoay quanh một tính năng có tên là XMLHttpRequest. Các kĩ sư
của dự án Mozilla bắt đầu hỗ trợ tính năng này ở bản Mozilla 1.0 (và Netscape 7).
Apple cũng đã thực hiện một tính năng tương tự kể từ Safari 1.2.
Ajax là sự phối hợp một loạt các công nghệ đang thu hút sự quan tâm của giới công
nghiệp trong thời gian gần đây. Đó chính là :
o Trình bày trang Web dựa trên XHTML và CSS, các chuẩn của W3C, được


Firefox (Mozilla), Safari (Apple), Opera, Netscape 8.0 (nhân Firefox) hỗ trợ
rất tốt;
o Biểu diễn động và tương tác sử dụng Document Object Model, chuẩn của
W3C;
o Trao đổi và xử lý dữ liệu dùng XML và XSLT, chuẩn của W3C;
o Thu hồi dữ liệu bất đối xứng dùng dùng XMLHttpRequest;
o Dùng JavaScript để liên kết mọi thứ lại với nhau. JavaScript ở đây là
ECMAScript, chuẩn của ECMA, không phải là JScript của Microsoft.
AJAX hoạt động như thế nào?
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 lý 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 truyền 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ư lấy 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 một 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ủ. Ajax cho phép tạo ra một Ajax Engine
nằm giữa giao tiếp này. Đ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 lại" của thông tin và giảm thời gian phản ứng. Khi đó, các yêu cầu
gửi resquest và nhận response do Ajax Engine thực hiện. Thay vì trả dữ liệu dưới dạng
HTML và CSS trực tiếp cho trình duyệt, web server có thể gửi trả dữ liệu dạng XML và
Ajax Engine sẽ tiếp nhận, phân tách và chuyển hóa thành XHTML+CSS cho trình duyệt
hiển thị. Việc này được thực hiện trên client nên giảm tải rất nhiều cho server, đồng thời
người sử dụng cảm thấy kết quả xử lý được hiển thị tức thì mà không cần nạp lại trang.
Mặt khác, sự kết hợp của các công nghệ web như CSS và XHTML làm cho việc trình bày
giao diện trang web tốt hơn nhiều và giảm đáng kể dung lượng trang phải nạp. Và thay

vì 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 giữ
nguyên các phần khác. Vì thế, khi duyệt một trang hỗ trợ AJAX, người sử dụng không
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 hiệu cho thấy
máy chủ đang thực hiện nhiệm vụ. Ví dụ, trong một website ảnh, với ứng dụng truyền
thống, toàn bộ trang chứa các ảnh sẽ phải mở lại 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.
"Mọi thao tác của người sử dụng sẽ gửi lệnh 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 gì từ server, như tải về bổ
sung mã giao diện hay nhận dữ liệu mới, AJAX sẽ truyền 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".
Tính không đồng bộ của các ứng dụng Ajax được thể hiện trong hình dưới đây.

Những nhược điểm của AJAX
AJAX có thể góp phần tạo nên một thế hệ mới cho ứng dụng web (như colr.org hay
backpackit.com). Tuy nhiên, nó cũng là một công nghệ "nguy hiểm" khi gây ra không ít
rắc rối về giao diện người dùng. Chẳng hạn, phím "Back" (trở lại trang trước) được đánh
giá cao trong giao diện website chuẩn. Đáng tiếc, chức năng này không hoạt động ăn
khớp với Javascript và mọi người không thể tìm lại nội dung trước đó khi bấm phím
Back. Bởi vậy, chỉ một sơ xuất nhỏ là dữ liệu trên trang đã bị thay đổi và khó có thể khôi
phục lại được. Đây là một trong những nguyên nhân chính khiến nhiều người không ủng
hộ ứng dụng Javascript.
Bên cạnh đó, mọi người không thể lưu lại địa chỉ web vào thư mục Favorite (Bookmark)
để xem lại về sau. Do áp dụng lớp trung gian để giao dịch, các ứng dụng AJAX không có
một địa chỉ cố định cho từng nội dung. Khiếm khuyết này làm cho AJAX dễ "mất điểm"
trong mắt người dùng.
Những trình duyệt hỗ trợ AJAX phải là các trình duyệt mới, hiện đại như Microsoft
Internet Explorer 5.0 trở lên; browser dựa trên Gecko như Mozilla, Firefox, SeaMonkey,

Epiphany, Galeon và Netscape 7.1; trình duyệt chứa KHTML API 3.2 trở lên như
Konqueror, Apple Safari...
Các trang Web có sử dụng AJAX :
Google Maps
Client
MAP interface
Google Map
Server
OGC WFS
Feature Data Server

Sự hồi sinh của Ajax trong vài tháng gần đây một phần nhờ những ứng dụng cải tiến của
Google trong quá trình xây dựng bản đồ online. Trước đây, sơ đồ thường là tĩnh: người
xem bấm vào mũi tên trái, đợi vài giây để trang web tải nội dung và dịch chuyển hình ảnh
sang trái. Quá trình cứ lặp đi lặp lại như thế một cách chậm chạp và gây khó chịu cho
nhiều người. Với Google Maps, người dùng có thể kéo bản đồ theo bất cứ hướng nào,
xem khu vực mới nhanh chóng, và phóng to, thu nhỏ dễ dàng khi kéo con trượt Ajax.
Một ví dụ khác là dịch vụ web mail. Khách hàng, sau khi xem nội dung, sẽ bấm vào một
phím trên giao diện nếu muốn xóa thông tin. Máy chủ mail từ xa nhận lệnh và phản hồi
lại bằng với một trang mới đã bỏ đi những phần bị xóa.
Yahoo đang thử nghiệm một giao diện mới sử dụng công nghệ Ajax. Khi ta xóa một mục
nào đó, và Ajax sẽ cấu hình lại trang tức thì mà không cần đợi phản hồi. Hơn nữa, khi mở
một thông điệp để đọc, trình duyệt chỉ hiển thị nội dung, bởi người sử dụng đã biết tiêu
đề thư và không cần phải lãng phí thời gian nhân đôi dữ liệu tải xuống nữa. Hãng dịch vụ
trực tuyến lớn nhất thế giới cũng đang xây dựng một công cụ Ajax có thể nhanh chóng
cập nhật thông tin khi khách hàng lựa chọn sân bay, chuyến bay, thời gian...
Hãng AOL, cơ quan chủ quản của CNN.com, bắt đầu sử dụng Ajax từ mùa hè qua, cho
phép khách hàng sắp xếp lại, chọn hiển thị và chuyển đổi album ảnh chỉ với một vài thao
tác nhấn chuột. Tuần trước, công ty MarketWatch (Mỹ) đã quyết định cung cấp bản tin
bao gồm những trích dẫn chứng khoán được cập nhật liên tục mỗi giây, với màu xanh và

đỏ nhấp nháy khi giá dao động.
Microsoft cũng ứng dụng Ajax trong bản cập nhật Hotmail và đang xây dựng chương
trình mới hỗ trợ sự phát triển Ajax. Công nghệ thay thế XAML sẽ cho phép nhiều ứng
dụng phong phú hơn hoạt động trên trình duyệt. Nhưng không như Ajax, nó chỉ chạy trên
máy tính Windows.
Tuy vậy, Ajax chưa thể thực hiện tất cả mọi thứ. Những ứng dụng phụ thuộc nhiều vào
máy tính cố định như Photoshop của Adobe sẽ không xuất hiện sớm trên trình duyệt.
Ngay cả Google cũng phải tạo một phần mềm bản đồ trên desktop (Google Earth) và yêu
cầu tải chương trình về để có thể hiển thị hình ảnh 3D và thực hiện một số tính năng cải
tiến khác. Hơn nữa, ứng dụng web đòi hỏi phải liên tục kết nối với Internet, khiến công
việc trên sẽ trở nên khó khăn nếu bị gián đoạn.

Bảo mật trong Ajax
Công nghệ AJAX ẩn chứa những lỗ hổng nghiêm trọng

Các ứng dụng AJAX xuất hiện ngày một nhiều đồng nghĩa với việc doanh nghiệp và
người sử dụng phải đương đầu với những nguy cơ bảo mật mới. Tuy nhiên, các chuyên
gia phát triển có vẻ không nhận thức đầy đủ về mối hiểm họa này.
“Thông thường, tấn công một ứng dụng qua lớp web dễ hơn nhiều so với việc cố xuyên
qua tường lửa hoặc tìm đường vòng tránh các hệ thống chống xâm nhập”, Billy Hoffman,
Trưởng nhóm nghiên cứu thuộc công ty bảo mật Spi Dynamics (Mỹ), cho hay.
Đối với người sử dụng, AJAX là phương pháp lập trình giúp website hoạt động nhanh và
mang tính tương tác hơn. Google đã giới thiệu công cụ AJAX cho phép người dùng tích
hợp kết quả tìm kiếm trực tiếp ngay trên trang web của họ. Các ứng dụng AJAX phổ biến
khác là site chia sẻ ảnh Flickr và trang tin tức Digg.
Tuy nhiên, dịch vụ e-mail hỗ trợ tổ hợp công nghệ này của Yahoo đã gặp lỗi bảo mật
nghiêm trọng hồi hè năm ngoái. Kẻ tấn công đã phát tán một thông điệp chứa mã độc để
truy cập e-mail của nạn nhân, tải danh sách địa chủ và gửi thư rác từ chính tài khoản bị
đột nhập.
Mối nguy hiểm dạng này còn được gọi là XSS (cross-site scripting) do chúng có thể mở

rộng ra một vài dịch vụ khác. XSS đang nhanh chóng trở thành hình thức tấn công trực
tuyến phổ biến nhất đối với hacker. Salesforce.com, PayPal và Google đều đã phải sửa
lỗi bảo mật XSS trong các phần mềm của họ.
Trong khi đó, giới phát triển web thường không chú ý đến việc bảo mật các đoạn mã do
họ thường là chuyên gia thiết kế đồ họa, còn các chuyên gia phần mềm tạo mã cho web

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×