AJAX – Tương lai của Web 2.0 collection by traibingo
1 AJAX VÀ ỨNG DỤNG CỦA NÓ
Có thể nói, kể từ khi cái tên "Ajax" ra đời đến nay, tiềm năng của nó vẫn chưa được đánh giá hết
và các nhà phát triển web vẫn còn đang mày mò nghiên cứu tìm ra những ứng dụng của công
nghệ này. Đến thời điểm hiện tại, đã có rất nhiều những ví dụ thể hiện khả năng đặc biệt của
công nghệ này như các ứng dụng liệt kê ở đầu bài viết mà nổi bật nhất có thể kể đến Gmail và
Google Map. Thử duyệt Google Map và chắc chắn bạn sẽ không khỏi bất ngờ trước những gì
mà Ajax có thể làm được: thử phóng to, thu nhỏ, di chuyển quanh bản đồ trong Google Map -
bạn gần như không phải đợi chút xíu nào; hình ảnh cứ xuất hiện thành một chuỗi liên tục như
bạn đang xem bản đồ trên phần mềm ở máy mình vậy.
Tất nhiên, những ứng dụng như Gmail và Google Maps là những ví dụ vô cùng phức tạp của
những ứng dụng của công nghệ Ajax. Tuy nhiên, Ajax không chỉ thể hiện ưu điểm của nó đối
với các ứng dụng lớn như vậy. Bạn hoàn toàn có thể sử dụng Ajax cho những ứng dụng nhỏ hơn,
thậm chí chỉ cho một số thành phần trong ứng dụng web của bạn để làm tăng khả năng tương tác
với người dùng.
Có lẽ một trong những ứng dụng "nhỏ mà nổi tiếng" nhất của Ajax là tính năng "Live Search",
bắt chước công nghệ Spotlight Apple mới giới thiệu trong phiên bản Mac OSX 10.4 Tiger. Gõ
một ký tự vào ô tìm kiếm và một danh sách các kết quả xuất hiện ngay lập tức bên dưới, gõ thêm
một ký tự nữa và danh sách đó tự động rút ngắn lại,… Bạn có thể tìm hiểu thêm về Live Search
và cách tích hợp nó vào website của mình tại đây (tuy nhiên, việc có nên áp dụng hay không lại
là chuyện khác, như sẽ phân tích ở phần sau).
Một số ứng dụng khác cũng khá phổ biến như:
Tính năng "Auto save" (lưu tự động): Sử dụng Ajax, bạn có thể bắt chước tính năng
của các phần mềm soạn thảo tự động lưu những gì người dùng đã gõ được sau một khoản
bằng công nghệ Ajax. Bản chất sử dụng một lớp trung gian để giao dịch khiến cho các
ứng dụng web không có một địa chỉ nhất định cho từng nội dung (đây cũng là vấn đề bạn
gặp khi sử dụng Frame trong thiết kế web). Một ví dụ rõ ràng nhất là bạn không thể nhấn
nút "BACK" của trình duyệt để quay lại nội dung trước đó trong Gmail.
Tạo bối rối cho người dùng nếu bạn áp dụng công nghệ Ajax mà không suy nghĩ kỹ.
Người dùng thường đã quen với việc nhấn nút để thực hiện một tác vụ nào đó - trong khi
Ajax cho phép bạn thực hiện thay đổi ngay lập tức. Đây là một điểm yếu khá nghiêm
trọng: Bản chất của Ajax là không dung thứ ("forgiveless"). Chính vì bạn có thể thực hiện
các thay đổi ngay lập tức, đôi khi người dùng chỉ vô tình cũng đã thay đổi dữ liệu trong
cơ sở dữ liệu của bạn mà. Cách an toàn nhất là chỉ sử dụng Ajax để thực hiện các tác vụ
kiểm tra mà không tác động trực tiếp đến dữ liệu, hoặc là bạn phải chắc chắn rằng mình
cung cấp một cơ chế để khôi phục các lỗi vô tình, hoặc là bạn tạo ra một cơ chế để xác
nhận mỗi khi hành động của người dùng có khả năng tạo ra những thay đổi dữ liệu.
Tương thích: Ajax chỉ hoạt động nếu trình duyệt hỗ trợ đối tượng XMLHttpRequest.
Đây là vấn đề mà Gmail gặp phải đối với trình duyệt Opera trước khi Opera 8 ra đời. Tuy
nhiên, đến thời điểm hiện tại thì các trình duyệt phổ biến nhất đều hỗ trợ
XMLHttpRequest (Firefox, Internet Explorer, Opera 8, Sarafi). Cho dù vậy, hãy luôn xây
dựng một cơ chế dự phòng trường hợp trình duyệt không hỗ trợ (ví dụ nếu người dùng sử
dụng máy Palm,…)
Tương tác người dùng: Buồn cười là mặc dù Ajax giải quyết được một vấn đề then chốt
về tương tác người dùng của các ứng dụng web, nó lại tạo ra một số vấn để nhỏ khác.
Chính vì Ajax thực hiện tác vụ quá nhanh nên đôi khi người dùng không tin là nó đã
được thực hiện! Tất nhiên đây đơn thuần là vấn đề về thói quen, tuy nhiên để đảm bảo
khả năng tương tác ở mức tốt nhất, bạn nên có một cơ chế giúp xác nhận những gì đang
AJAX – Tương lai của Web 2.0 collection by traibingo
3
thường niên dành cho các nhà phát triển chuyên nghiệp) Microsoft đã công bố dự
án Atlas đầy tham vọng, hứa hẹn cung cấp một nền tảng toàn diện hơn và đơn giản
hoá việc phát triển ứng dụng web kiểu Ajax.
MỤC TIÊU
AJAX – Tương lai của Web 2.0 collection by traibingo
4
Mục tiêu đầu tiên của Atlas nhằm hỗ trợ phát triển phía máy khách (client), cung cấp
các tính năng:
• Thư viện API hướng đối tượng bổ sung cho JavaScript.
• Tương thích trình duyệt tự động (hỗ trợ ứng dụng chạy với nhiều trình duyệt).
• Thư viện API và các thành phần hỗ trợ tính năng giao diện người dùng (UI) phong
phú.
• Phát triển client kiểu khai báo (XML script) nhằm đơn giản hoá mã lệnh chương
trình.
Mục tiêu thứ hai của Atlas nhằm kết hợp việc phát triển phía client với việc phát triển
phía server. Thay vì chú trọng toàn bộ chương trình phía client hoặc phía server,
Atlas cung cấp hỗ trợ cho cả hai, cho phép xử lý tác vụ ở nơi có ý nghĩa nhất. Phía
máy chủ (server), ASP.NET có các tính năng sau phục vụ cho ứng dụng Atlas:
phần sau:
• Nhân (Script Core): bổ sung đặc tính hướng đối tượng cho JavaScript (như
lớp, interface, kế thừa, xử lý sự kiện, kiểu dữ liệu ). Đây là có thể xem là .NET
CLR thu nhỏ ở phía client.
• Thư viện lớp cơ bản (Base Class Library): cung cấp các lớp và cấu trúc cơ bản
được dùng trong phát triển .NET Framework (như StringBuilder, Debug,
Event ); cung cấp thư viện API xử lý mã client dạng khai báo (XML). Lớp này
còn cung cấp hỗ trợ XMLHTTP với WebRequest và WebResponse, cho phép gọi
WebMethod ở các file .asmx và .aspx hay dịch vụ web bất kỳ.
• Lớp mô hình thành phần và khung giao diện (Component Model và UI
Framework): định nghĩa các thành phần, cơ chế liên kết các thành phần với nhau
và các phương thức thực thi. Phần UI Framework xác định các kiểu thành phần
giao diện cùng với hành vi (như kéo-thả).
• Các điều khiển và thành phần (Controls & Components): tập các thành phần
xây dựng sẵn và các điều khiển dùng cho phát triển phía client như Timer (bộ
định thời), Counter (bộ đếm), các điều khiển form thông thường, điều khiển gắn
với dữ liệu (ListView) hay điều khiển bản đồ (dựa trên Virtual Earth).
• Lớp tương thích trình duyệt (Browser Compatibility): xử lý tương thích với các
trình duyệt (hiện tại, Atlas có thể chạy trên IE, Safari và Firefox).
Thành phần server
Thành phần server của Atlas được xây dựng trên ASP.NET 2.0, cơ bản gồm các
AJAX – Tương lai của Web 2.0
báo này để sinh mã lệnh (thể hiện và hành vi của trang) ngay tại trình duyệt
(client) lúc thực thi. Phương thức này nhằm tránh việc tạo hàng đống mã lệnh
JavaScript rồi nhúng vào trang trước khi gửi đi từ server. Bằng cách thực hiện
việc này ở phía client, kích thước trang có thể giữ khá nhỏ và người phát triển
không cần phải bận tâm đến những đặc trưng của từng trình duyệt ở client.
Microsoft dường như chú trọng đến kiểu lập trình khai báo này, tuy nhiên bạn
vẫn có thể thực hiện kiểu mã lệnh JavaScript trực tiếp, nhưng lưu ý những tính
năng hướng đối tượng hạn chế của JavaScript.
AJAX – Tương lai của Web 2.0 collection by traibingo
7 HIỆN THỰC
Atlas vẫn còn trong quá trình phát triển. Microsoft dự kiến sẽ ra mắt Atlas trong
năm 2006 này như là thành phần bổ sung cho ASP.NET 2.0 và nó sẽ được tích
hợp với Visual Studio 2005.
Tuy nhiên, ngay từ bây giờ bạn đã có thể làm quen với Atlas. Microsoft hiện đã
có cung cấp file ASPNETAtlas.vsi để cài đặt dự án Atlas mẫu (Atlas Web Site
Template, trên
Visual Studio 2005 ( hay Visual Web
Developer Express ( Dự án này
có đủ mọi thứ cần thiết cho dự án web kiểu Atlas, bao gồm thư viện Atlas.
động ở client. Mô hình này cũng cho phép xử lý tức thời những hành vi của
người dùng và có khả năng thực hiện những hiệu ứng thị giác như kéo-thả. Cái
giá của giải pháp này gồm công sức viết mã lệnh client không nhỏ và việc
chuyển luận lý giao diện từ server sang client dẫn đến yêu cầu xây dựng và học
sử dụng các công cụ mới, mô hình thiết kế mới
Trong mô hình phát triển đặt trọng tâm phía server, server sẽ gửi mã HTML đến
client thay vì dữ liệu thuần tuý. Việc xử lý phía client đơn giản hơn nhiều, chủ
yếu chịu trách nhiệm gửi yêu cầu rồi nhận mã HTML đáp trả và đặt vào đúng chỗ
trong trang. Hầu hết việc xử lý tương tác và giao diện đều nằm ở server.
Trong khi một số người thích "đường lối" mới, nhưng một số người khác lại thích
mô hình phát triển phía server quen thuộc. Có những tính năng bạn vẫn có thể
thực hiện theo mô hình phát triển truyền thống, nhưng những tính năng như
tương tác giao diện người dùng phải cần đến nền tảng phát triển kiểu Atlas - cho
phép cân đối giữa mô hình client phong phú với mô hình phía server hiện hữu.
Tham khảo:
-
-