AJAX (tiếng Anh: "Asynchronous JavaScript and XML" - nghĩa là "JavaScript và XML không đồng bộ") là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hay các ứng dụng giàu tính Internet (rich Internet application). Từ Ajax được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vào tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 nãm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:
HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủ web. (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường được sử dụng).
XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON và ngay cả EBML.
Giống như DHTML, LAMP hay SPA, Ajax tự nó không phải là một công nghệ mà là một thuật ngữ mô tả việc sử dụng kết hợp một nhóm nhiều công nghệ với nhau. Trong thực tế, các công nghệ dẫn xuất hoặc kết hợp dựa trên Ajax như AFLAX cũng đã xuất hiện.
Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và dị bộ trong ứng dụng AJAX
Hiểu nôm na: Điểm khác biệt cơ bản nhất của công nghệ này là việc xử lý thông tin được thực hiện trên máy yêu cầu dịch vụ thay vì trên máy xử lý yêu cầu dịch vụ như cách truyền thống. Máy xử lí yêu cầu dịch vụ chỉ làm một việc đơn giản là nhận thông tin từ máy khách và trả các dữ liệu về cho máy khách. Máy yêu cầu dịch vụ xử lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển về máy xử lí yêu cầu dịch vụ rồi nhận dữ liệu từ máy xử lí yêu cầu dịch vụ và xử lý để hiển thị cho người dùng.
Các ứng dụng Ajax phần lớn trông giống như thể chúng được đặt trên máy của người sử dụng hơn là được đặt trên một máy phục vụ thông qua Internet. Lý do: các trang được cập nhật nhưng không nạp lại (refresh) toàn bộ. "Mọi thao tác của người sử dụng sẽ gửi mẫu của một lời gọi JavaScript tới bộ xử lý (engine) Ajax thay vì tạo ra một yêu cầu HTTP (HTTP request)", Jesse James Garrett đã ghi như vậy trong bài luận đầu tiên định nghĩa về thuật ngữ này. "Mọi đáp ứng cho thao tác của người sử dụng sẽ không cần truy vấn tới máy phục vụ – ví dụ như việc kiểm tra một cách đơn giản sự hợp lệ của dữ liệu, sửa đổi dữ liệu trong bộ nhớ và thậm chí một vài thao tác duyệt trang – bộ xử lý Ajax tự nó đảm nhận trách nhiệm này. Nếu bộ xử lý cần gì từ máy phục vụ để đáp ứng – như khi nó gửi dữ liệu để xử lý, tải về bổ sung các mã giao diện hay nhận về dữ liệu mới – nó sẽ thực hiện các yêu cầu tới máy phục vụ 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 sử dụng với ứng dụng web".
So sánh ứng dụng web truyền thống (trái) với AJAXAdaptive Path
Các ứng dụng truyền thống về bản chất là gửi dữ liệu từ các form, được nhập bởi người sử dụng, tới một máy phục vụ web. Máy phục vụ web sẽ trả lời bằng việc gửi về một trang web mới. Do máy phục vụ phải tạo ra một trang web mới mỗi lần như vậy nên các ứng dụng chạy chậm và "lúng túng" hơn.
Mặt khác, các ứng dụng Ajax có thể gửi các yêu cầu tới máy phục vụ web để nhận về chỉ những dữ liệu cần thiết, thông qua việc dùng SOAP hoặc một vài dịch vụ web dựa trên nền tảng XML cục bộ khác. Trên máy thân chủ (client), JavaScript sẽ xử lý các đáp ứng của máy chủ. Kết quả là trang web được hiển thị nhanh hơn vì lượng dữ liệu trao đổi giữa máy chủ và trình duyệt web giảm đi rất nhiều. Thời gian xử lý của máy chủ web cũng vì thế mà được giảm theo vì phần lớn thời gian xử lý được thực hiện trên máy khách của người dùng.
Có thể xem xét một website nhiếp ảnh cho phép người sử dụng nhập các tiêu đề như một ví dụ về cách làm việc của Ajax. Với một ứng dụng web truyền thống, toàn bộ trang web bao gồm cả các ảnh cần được nạp lại. Với các công nghệ Ajax, DHTML có thể thay thế chỉ những đoạn tiêu đề và kết quả là người dùng có những giao dịch "mượt mà" đáng quan tâm.
[sửa] Ưu nhược điểm
[sửa] Ưu điểm
Trong nhiều trường hợp, các trang web chứa rất nhiều nội dung thông thường trong trang. Nếu sử dụng các phương pháp truyền thống, những nội dụng đó sẽ phải nạp lại toàn bộ với từng yêu cầu. Tuy nhiên, nếu sử dụng Ajax, một ứng dụng web có thể chỉ yêu cầu cho các nội dung cần thiết phải cập nhật, do đó giảm lượng lớn băng thông và thời gian nạp trang.[1][2]
Việc dùng các yêu cầu không đồng bộ (asynchronous request) cho phép giao diện người dùng của ứng dụng hiển thị trên trình duyệt giúp người dùng trải nghiệm sự tương tác cao, với nhiều phần riêng lẻ.[3]
Việc sử dụng Ajax có thể làm giảm các kết nối đến server, do các mã kịch bản (script) và các style sheet chỉ phải yêu cầu một lần.[3]
[sửa] Nhược điểm
Các trang web được tạo động không được ghi vào bộ lưu lịch sử lướt web của trình duyệt, do đó nút "back" (quay lui) của trình duyệt sẽ mất tác dụng quay lại trang thái trước đó của trang sử dụng Ajax, thay vào đó sẽ quay lại trang web trước đó mà người dùng ghé thăm. Để khắc phục có thể dùng các IFrame không hiển thị để gây ra sự thay đổi trong lịch sử trình duyệt và thay đổi phần neo của URL (bằng mã a #) khi chạy Ajax và theo dõi những sự thay đổi của nó.[3]
Việc cập nhật các trang web động cũng gây khó khăn cho người dùng trong việc bookmark (đánh dấu địa chỉ yêu thích) một trạng thái nào đó của ứng dụng. Cũng có những các khắc phục cho vấn đề này, một số trong đó sử dụng mã xác định đoạn (fragment identifier) URL (phần URL ở sau dấu '#') để lưu vết, và cho phép người dùng đánh dấu và quay lại một trạng thái nào đó của ứng dụng.[3]
Do hầu hết các web crawler không thực thi mã JavaScript, các ứng dụng web sẽ cung cấp một phương thức thay thế để truy cập nội dung thông thường được truy cập bằng Ajax, để cho phép các máy tìm kiếm lập chỉ mục chúng.[4]
Bất kỳ người dùng nào có trình duyệt không hỗ trợ Ajax hay JavaScript, hoặc đơn giản là đã bị vô hiệu hóa JavaScript, sẽ đương nhiên không thể sử dụng Ajax.[4] Tương tự, các thiết bị như điện thoại di động, PDA, và thiết bị đọc màn hình (screen reader) có thể không hỗ trợ JavaScript hay đối tượng XMLHttp được yêu cầu. Ngoài ra, các thiết bị đọc màn hình nếu có thể sử dụng Ajax đi nữa cũng vẫn có thể không đọc chính xác các nội dung động.[5]
Chế độ same origin policy (chế độ gốc đơn điệu) có thể không cho phép sử dụng Ajax thông qua các tên miền,[6] mặc dù W3C đã có một đồ án sơ thảo để cho phép điều này.[7]
Việc thiếu các chuẩn cơ bản của Ajax đồng nghĩa với việc không có nhiều sự chọn lựa thực tiễn tốt nhất để kiểm tra các ứng dụng Ajax. Các công cụ kiểm thử cho Ajax thương không hiểu các mô hình sự kiện, mô hình dữ liệu và giao thức của Ajax.
Mở ra một các thức khác cho việc tấn công của các đoạn mã độc mà những nhà phát triển web có thể không kiểm thử hết được. [8]
[sửa] Các trình duyệt hỗ trợ Ajax
Apple Safari từ 1.2 trở lên
Konqueror
Microsoft Internet Explorer từ 4.0 trở lên
Mozilla/Mozilla Firefox từ 1.0 trở lên
Netscape từ 7.1 trở lên
Opera từ 8.0 trở lên
GreenBrowser 4.3
Google Chrome tất cả các phiên bản.
[sửa] Tham khảo
^ Merrill, Christopher (15 tháng 1 năm 2006). “Performance Impacts of AJAX Development”. Web Performance, Inc. Truy cập 16 tháng 6 năm 2008.
^ “The Advantages of Using AJAX”. lunarpages.com. Truy cập 26 tháng 6 năm 2008.
^ a b c d “Why use AJAX?”. InterAKT (10 tháng 11 năm 2005). Truy cập 26 tháng 6 năm 2008.
^ a b “The Disadvantages of Using AJAX”. lunarpages.com. Truy cập 26 tháng 6 năm 2008.
^ Edwards, James (5 tháng 5 năm 2006). “AJAX and Screenreaders: When Can it Work?”. sitepoint.com. Truy cập 27 tháng 6 năm 2008.
^ Quian, Mark (14 tháng 7 năm 2006). “Building an AJAX Application (1): It isn't called AJAX but Remote Scripting”. coolshare.com. Truy cập 27 tháng 6 năm 2008.
^ “Access Control for Cross-Site Requests”. World Wide Web Consortium. Truy cập 27 tháng 6 năm 2008.
^ Sullivan, Bryan. “Testing for security in the age of AJAX Programming”. developerFusion. Truy cập 15 tháng 10 năm 2008.
[sửa] Liên kết ngoài
Ajax: A New Approach to Web Applications, bởi Jesse James Garrett. Bài báo đầu tiên về Ajax
AJAX:Getting Started Bài báo của Mozilla.org.
[sửa] Xem thêm
Web 2.0
[sửa] Liên kết ngoài
Flickr
Google Local (trước đây Google Maps)
Windows Live
Một ứng dụng web truyền thống xử lý sự tương tác với người dùng so với một ứng dụng Ajax
Các thành phần khác nhau của các ứng dụng Ajax tương tác với nhau so với các ứng dụng web truyền thống
[sửa] Công cụ
ASP.NET AJAX, toolkit Ajax của Microsoft cho ASP.NET
Anthem.NET, toolkit AJAX của Jason Diamond cho ASP.NET
Dojo Toolkit, toolkit Ajax/DHTML
Prototype, khuôn khổ mã nguồn mở
Sajax, toolkit Ajax đơn giản 1
Rialto (Rich Internet AppLication TOolkit)
ZK, Ajax but no Javascript.
JQuery, Toolkit xử lý javascript cho web page (support Ajax mạnh)
Mootools, Một Toolkit khác xử lý javascript cho web page (support Ajax mạnh)
Thứ Hai, 17 tháng 5, 2010
Mười cách thức bảo vệ bạn khi lướt Web
1. Cài đặt phần mềm tường lửa gia đình và phần mềm chống virus
Hacker có thể lùng sục trong Internet để kiếm tìm các máy tính có lỗ hổng nhằm đánh cắp số thẻ tín dụng, các thông tin cá nhân và thực hiện các mưu đồ xấu xa khác. Phần mềm tường lửa gia đình như BlackICE Defender hoặc Zone Alarm có thể giúp bạn tránh được sự nhòm ngó của hacker. Bạn cũng nên cài đặt một phần mềm chống virus cho máy tính.
2. Cẩn thận khi gửi thông tin
Đừng gửi các thông tin nhạy cảm như địa chỉ nhà riêng, số điện thoại, tên và tuổi của bọn trẻ cho những người lạ mặt qua Internet. Hãy cẩn thận với những gì mà bạn đưa lên Website của mình. Nếu bạn muốn đưa một bức ảnh mình hoặc của gia đình lên mạng, bạn hãy chọn một site dịch vụ lưu ký mà cho phép thiết lập mật khẩu truy cập. Bạn nên nhớ rằng tất cả những gì bạn thảo luận tại các diễn đàn trực tuyến đều được ghi lại, và có thể dễ dàng tìm thấy.
3. Không tải xuống máy tính bất cứ thứ gì trừ phi bạn tin tưởng vào người gửi và nguồn gốc file gửi kèm
Những e-mail trông có vẻ không mấy nguy hại lại thường chứa các phần mềm gián điệp. Để được an toàn, không nên tải xuống máy tính bất cứ thứ gì trừ phi bạn biết người gửi, và tin tưởng rằng file gửi kèm sẽ không gây nguy hại cho máy tính của bạn.
4. Sử dụng một e-mail phụ
Khi bạn điền các thông tin vào một bản kê khai trên mạng, gửi thông điệp tới các nhóm thảo luận trực tuyến, hoặc cho người lạ địa chỉ e-mail của bạn, thì bạn hãy cho địa chỉ e-mail phụ mà bạn đã đăng ký từ các dịch vụ miễn phí như Hotmail hay Yahoo mail. Nếu địa chỉ e-mail này bị "bom thư", bạn có thể bỏ đi và sử dụng một địa chỉ e-mail khác. Bạn chỉ nên trao đổi địa chỉ e-mail chính với những người mà bạn thực sự tin tưởng.
5. Không để cho trình duyệt trở thành một kẻ ba hoa
Tên và địa chỉ e-mail của bạn có thể được nhúng trong trình duyệt. Một số Website có thể lấy các thông tin này từ trình duyệt của bạn và tạo một dữ liệu về bạn. Để ngăn không cho những thông tin của bạn bị rò rỉ, bạn có thể vào thực đơn preferences của trình duyệt (Netscape) và xóa những thông tin này, hoặc thay thế bằng một cái tên và địa chỉ e-mail giả.
6. Chính sách bí mật cá nhân
Bạn hãy kiểm tra chính sách về bí mật cá nhân của Website mà bạn ghé thăm. Các Website thường giữ quyền chia sẻ dữ liệu về bạn với một bên thứ ba nào đó. Bạn hãy đọc phần Privacy Statement trên các Website.
7. Không chấp nhận các cookie không cần thiết
Bạn có thể muốn chấp nhận các cookie nằm trong máy tính vì các cookie thường giúp cho bạn mua hàng trực tuyến dễ dàng hơn do chúng nắm giữ thông tin về bạn. Nhưng bạn có thể tống khứ các cookie không cần thiết bằng cách thiết lập lại thực đơn preferences của trình duyệt (Netscape) hoặc sử dụng phần mềm tiện ích như Cookie Crusher.
8. Mã hoá các dữ liệu nhạy cảm
Trước khi gửi số thẻ tín dụng hoặc các thông tin tài chính khác qua Internet, bạn hãy đảm bảo rằng các thông tin đó đã được mã hóa để ngăn chặn sự nhòm ngó của hacker. Các Website đã được bảo mật thường cho bạn biết giao dịch đã được mã hóa, và trình duyệt của bạn thường hiển thị biểu tượng cái khoá để xác nhận rằng giao dịch đã được đảm bảo an toàn.
9. Sử dụng một ẩn danh
Bởi vì các Website thường lưu lại dữ liệu về bạn sau khi bạn ghé thăm, vì thế bạn có thể che giấu tên của mình bằng cách sử dụng một ẩn danh, chẳng hạn như sử dụng site ẩn danh www.anonymizer.com. Site này sẽ mã hóa các địa chỉ Website mà bạn ghé thăm, vì thế Nhà cung cấp dịch vụ Internet của bạn sẽ không thể biết bạn đã truy cập vào site nào.
10. Xóa cache sau khi lướt Web
Máy tính của bạn có một phần gọi là memory cache, chuyên lưu giữ địa chỉ các Website mà bạn đã ghé thăm. Một người nào khác khi sử dụng máy tính của bạn có thể phát hiện ra các Website mà bạn đã truy cập. Bạn có thể xóa dấu vết bằng cách xóa cache. Hãy tìm đến thực đơn Preferences của trình duyệt Netscape hoặc thực đơn Tool/Internet Option của trình duyệt IE để xoá cache. Và bạn hãy luôn nhớ rằng: dữ liệu mã hóa vẫn có thể bị bẻ khóa. Không dễ dàng phát hiện một phần mềm gián điệp trong máy tính của bạn. Điều cuối cùng: nếu bạn có những dữ liệu cực kỳ quan trọng, thì đừng nên lưu trong một máy tính có kết nối Internet.
Hacker có thể lùng sục trong Internet để kiếm tìm các máy tính có lỗ hổng nhằm đánh cắp số thẻ tín dụng, các thông tin cá nhân và thực hiện các mưu đồ xấu xa khác. Phần mềm tường lửa gia đình như BlackICE Defender hoặc Zone Alarm có thể giúp bạn tránh được sự nhòm ngó của hacker. Bạn cũng nên cài đặt một phần mềm chống virus cho máy tính.
2. Cẩn thận khi gửi thông tin
Đừng gửi các thông tin nhạy cảm như địa chỉ nhà riêng, số điện thoại, tên và tuổi của bọn trẻ cho những người lạ mặt qua Internet. Hãy cẩn thận với những gì mà bạn đưa lên Website của mình. Nếu bạn muốn đưa một bức ảnh mình hoặc của gia đình lên mạng, bạn hãy chọn một site dịch vụ lưu ký mà cho phép thiết lập mật khẩu truy cập. Bạn nên nhớ rằng tất cả những gì bạn thảo luận tại các diễn đàn trực tuyến đều được ghi lại, và có thể dễ dàng tìm thấy.
3. Không tải xuống máy tính bất cứ thứ gì trừ phi bạn tin tưởng vào người gửi và nguồn gốc file gửi kèm
Những e-mail trông có vẻ không mấy nguy hại lại thường chứa các phần mềm gián điệp. Để được an toàn, không nên tải xuống máy tính bất cứ thứ gì trừ phi bạn biết người gửi, và tin tưởng rằng file gửi kèm sẽ không gây nguy hại cho máy tính của bạn.
4. Sử dụng một e-mail phụ
Khi bạn điền các thông tin vào một bản kê khai trên mạng, gửi thông điệp tới các nhóm thảo luận trực tuyến, hoặc cho người lạ địa chỉ e-mail của bạn, thì bạn hãy cho địa chỉ e-mail phụ mà bạn đã đăng ký từ các dịch vụ miễn phí như Hotmail hay Yahoo mail. Nếu địa chỉ e-mail này bị "bom thư", bạn có thể bỏ đi và sử dụng một địa chỉ e-mail khác. Bạn chỉ nên trao đổi địa chỉ e-mail chính với những người mà bạn thực sự tin tưởng.
5. Không để cho trình duyệt trở thành một kẻ ba hoa
Tên và địa chỉ e-mail của bạn có thể được nhúng trong trình duyệt. Một số Website có thể lấy các thông tin này từ trình duyệt của bạn và tạo một dữ liệu về bạn. Để ngăn không cho những thông tin của bạn bị rò rỉ, bạn có thể vào thực đơn preferences của trình duyệt (Netscape) và xóa những thông tin này, hoặc thay thế bằng một cái tên và địa chỉ e-mail giả.
6. Chính sách bí mật cá nhân
Bạn hãy kiểm tra chính sách về bí mật cá nhân của Website mà bạn ghé thăm. Các Website thường giữ quyền chia sẻ dữ liệu về bạn với một bên thứ ba nào đó. Bạn hãy đọc phần Privacy Statement trên các Website.
7. Không chấp nhận các cookie không cần thiết
Bạn có thể muốn chấp nhận các cookie nằm trong máy tính vì các cookie thường giúp cho bạn mua hàng trực tuyến dễ dàng hơn do chúng nắm giữ thông tin về bạn. Nhưng bạn có thể tống khứ các cookie không cần thiết bằng cách thiết lập lại thực đơn preferences của trình duyệt (Netscape) hoặc sử dụng phần mềm tiện ích như Cookie Crusher.
8. Mã hoá các dữ liệu nhạy cảm
Trước khi gửi số thẻ tín dụng hoặc các thông tin tài chính khác qua Internet, bạn hãy đảm bảo rằng các thông tin đó đã được mã hóa để ngăn chặn sự nhòm ngó của hacker. Các Website đã được bảo mật thường cho bạn biết giao dịch đã được mã hóa, và trình duyệt của bạn thường hiển thị biểu tượng cái khoá để xác nhận rằng giao dịch đã được đảm bảo an toàn.
9. Sử dụng một ẩn danh
Bởi vì các Website thường lưu lại dữ liệu về bạn sau khi bạn ghé thăm, vì thế bạn có thể che giấu tên của mình bằng cách sử dụng một ẩn danh, chẳng hạn như sử dụng site ẩn danh www.anonymizer.com. Site này sẽ mã hóa các địa chỉ Website mà bạn ghé thăm, vì thế Nhà cung cấp dịch vụ Internet của bạn sẽ không thể biết bạn đã truy cập vào site nào.
10. Xóa cache sau khi lướt Web
Máy tính của bạn có một phần gọi là memory cache, chuyên lưu giữ địa chỉ các Website mà bạn đã ghé thăm. Một người nào khác khi sử dụng máy tính của bạn có thể phát hiện ra các Website mà bạn đã truy cập. Bạn có thể xóa dấu vết bằng cách xóa cache. Hãy tìm đến thực đơn Preferences của trình duyệt Netscape hoặc thực đơn Tool/Internet Option của trình duyệt IE để xoá cache. Và bạn hãy luôn nhớ rằng: dữ liệu mã hóa vẫn có thể bị bẻ khóa. Không dễ dàng phát hiện một phần mềm gián điệp trong máy tính của bạn. Điều cuối cùng: nếu bạn có những dữ liệu cực kỳ quan trọng, thì đừng nên lưu trong một máy tính có kết nối Internet.
Công cụ Ajax nguồn mở
Ai có thể cưỡng lại sức hấp dẫn của công nghệ thời thượng AJAX? Để bổ sung công nghệ này cho website cũng không quá khó, hiện có nhiều giải pháp nguồn mở hấp dẫn.
Ý tưởng sử dụng JavaScript có hay không có XML để thêm “tính thông minh” và khả năng tương tác cho trang web đã có từ thời kỳ đầu của web, hiện giờ AJAX là một trong những cách tốt nhất và đơn giản nhất cho công việc này. Các công cụ nguồn mở được xem xét ở đây khá đa dạng đủ để bao trùm thuật ngữ AJAX - Asynchronous JavaScript và XML.
Chọn 6
Vượt qua rất nhiều sản phẩm và giải pháp, sáu sản phẩm nổi bật được các tổ chức uy tín nhất hậu thuẫn được chọn: Dojo, Google Web Toolkit, Microsoft Atlas, Open Rico và Prototype, Yahoo AJAX Library và Kabuki AJAX Toolkit của Zimbra. Atlas của Microsoft không phải nguồn mở nhưng mã lệnh bạn tạo với sản phẩm này thuộc quyền sử dụng của bạn.
Sáu sản phẩm đều cung cấp một số widget (ứng dụng nhỏ có thể chạy trong trình duyệt hoặc chạy độc lập) giao diện người dùng rất hữu ích và các công cụ cơ bản giúp dễ dàng xây dựng ứng dụng AJAX. Chúng rất hấp dẫn với những nhà phát triển muốn thêm một phần mới hay nâng cấp một trang trong ứng dụng hiện có. Ví dụ, nếu muốn thêm một hiệu ứng động hay một bảng dữ liệu động, bạn có thể lấy widget dán vào nơi cần thiết; nói chung chúng đủ tốt để giúp bạn thực hiện các tác vụ cơ bản.
Tuy nhiên, nếu muốn làm những thứ hơi khác một chút, thường thì bạn phải chỉnh sửa mã lệnh (code). Điều này có vẻ quen thuộc với hầu hết lập trình viên từng dùng mã nguồn mở, nhưng các nhà phát triển dường như thích thứ có sẵn hơn. Nếu có kiến thức về lập trình và có thời gian để khai thác sự linh hoạt của nguồn mở thì các công cụ này là lựa chọn lý tưởng. Nếu không quen lập trình hay không có thời gian để “đào sâu”, bạn nên xem xét đầu tư cho các sản phẩm chuyên nghiệp hơn.
Dojo
Đây là dự án AJAX nguồn mở hàng đầu hiện nay. Không hẳn tốt hơn các công cụ khác về một phương diện cụ thể nào đó, nhưng nó có nhiều lựa chọn widget với khả năng tùy biến cao. Có thể hiểu vì sao cả IBM và Sun gần đây đã ký kết hỗ trợ dự án này.
Website của dự án và mã nguồn của nó có ưu điểm của một dự án nguồn mở phong phú, được đội ngũ các nhà phát triển đầy nhiệt huyết điều hành. Cơ chế quản lý này khuyến khích mọi thành phần tham gia miễn là đáp ứng triết lý cơ bản của Dojo là đơn giản và dễ hiểu.
Dojo có trình soạn thảo xuất sắc, nhiều lựa chọn hiệu ứng động, một số công cụ kéo-thả và nhiều thứ khác nữa. Phiên bản mới nhất 0.3.1 có công cụ lấy bản đồ từ Google và Yahoo.
Tuy nhiên, có vẻ như Dojo cũng gặp vấn đề về chất lượng không ổn định phổ biến của các dự án nguồn mở. Một số phần của thư viện Dojo được lập tài liệu và có trang mẫu minh họa tốt, nhưng những phần khác thì để nhà phát triển tự mày mò.
Việc bổ sung một ít tiện ích của Dojo vào ứng dụng web khá đơn giản. Chương trình được phát triển dạng môđun, cho phép ứng dụng web chỉ cần nạp các thành phần cần thiết. Trong nhiều tình huống, tất cả những gì bạn cần là bổ sung thuộc tính DojoType vào mã lệnh HTML của mình, lệnh này sẽ thực hiện công việc khi nạp trang.
Dojo tiếp tục cải tiến khi nó lôi cuốn thêm nhiều nhà phát triển, nhiều ý tưởng và chương trình từ các dự án khác. Có cơ sở để hy vọng dự án này ngày càng có nhiều tính năng phức tạp hơn.
Zimbra Kabuki AJAX Toolkit
Khi Zimbra xuất hiện như một giải pháp quản lý email và lịch làm việc hoàn chỉnh cho một tổ chức, nó gây ấn tượng với việc sử dụng AJAX phức tạp ở mọi cấp. Mọi widget đều được thiết kế để đem lại cảm giác “động” thật sự.
Trọn bộ sản phẩm được cung cấp theo một bản quyền nguồn chung, nhưng công cụ Ajax được Zimbra tách thành một sản phẩm riêng gọi là Kabuki và cấp phép sử dụng theo Apache hay Mozilla. Sản phẩm này bao gồm một số công cụ và widget thiết thực nhưng không có đủ tất cả như bộ sản phẩm lớn. Điều này không có nghĩa công cụ của Zimbra yếu: Kabuki có trình soạn thảo xuất sắc, thư viện cây hay và hệ thống dàn trang có thể xây dựng giao diện người dùng phức tạp.
Sản phẩm của Zimbra không có được các hiệu ứng động hào nhoáng hay phức tạp như Dojo hay thư viện AJAX của Yahoo. Các widget của Kabuki ít chức năng và cũng khá cơ bản. Có thể khắc phục một số hạn chế này bằng style sheet (css) cộng với kỹ năng thiết kế, lập trình.
Google Web Toolkit
Công cụ của Google có điểm dị biệt. Trong khi các công cụ khác viết bằng JavaScript thì Web Toolkit của Google lại viết bằng Java rồi dịch sang JavaScript. Việc này không có gì phức tạp vì JavaScript khá gần gũi với Java.
Tuy nhiên, việc dịch mã là giải pháp thú vị mà các nhà lập trình Java vừa thích lại vừa ngại vì JavaScript làm việc hơi khác với Java.Bộ công cụ này có nhiều widget thông dụng nhưng không có các hiệu ứng động hào nhoáng. Sản phẩm của Google dễ sử dụng, nó được thiết kế để xây dựng ứng dụng hoàn chỉnh chạy trong trình duyệt.
CÔNG CỤ AJAX THƯƠNG MẠI: NÂNG CẤP CUỘC CHƠI
Các sản phẩm nguồn mở có thể cạnh tranh với sản phẩm thương mại? Về tổng thể thì không nhưng về một số tính năng cụ thể thì có.
Trước hết, các công cụ AJAX chuyên nghiệp thường đi kèm môi trường phát triển (IDE) kéo-thả. Ví dụ, Tibco General Interface (infoworld.com/3552) và JackBe (infoworld.com/3234) có IDE hoàn chỉnh chạy trong trình duyệt. Các công cụ nguồn mở hiện tại không có được sự tươm tất này, nhưng chúng có thể chạy theo - Microsoft Atlas được thiết kế để tích hợp với IDE của chính hãng, và công cụ Java-to-JavaScript của Google làm việc tốt với các IDE Java như Eclipse.
Các sản phẩm thương mại cũng đi kèm với trình bẫy lỗi tinh vi. Chẳng hạn, Backbase cố tình bẫy lỗi tích hợp mở ngay ở website của người dùng. Nó được đóng gói chung với ứng dụng trong quá trình kiểm tra và được loại bỏ về sau. Việc bẫy lỗi các sản phẩm AJAX nguồn mở không thật thuận tiện. Dojo và Yahoo có thể ghi nhận các thông điệp để giám sát, còn Google có môi trường hoàn chỉnh chạy trên PC.
Với ứng dụng quan trọng thì công cụ thương mại là giải pháp thích hợp. IceSoft và Nexaweb (infoworld.com/2257) cung cấp các công cụ client phong phú cho phép bạn nhúng thành phần web vào phần mềm client, cho phép bạn tận dụng tất cả kiến thức HTML và JavaScript để xây dựng ứng dụng client. Kapow (infoworld.com/4035) cũng cung cấp công cụ xử lý màn hình tinh vi với thư viện JavaScript nhúng.
Có thể thực hiện những việc tương tự với các công cụ nguồn mở khác nhau, nhưng sẽ phải tốn nhiều công sức hơn.
Open Rice và Prototype
Một trong những dựa án AJAX nổi tiếng, hoàn toàn nguồn mở được tạo nên từ liên minh hai dự án Open Rico và Prototype. Rico và Prototype giống nhau ở điểm chú trọng đến các hiệu ứng động và khác nhau ở một số công cụ thiết thực.
Thư viện Prototype là bộ công cụ cơ bản nhắm đến các nhà lập trình. Nó có các hàm chức năng đơn giản, tất cả đều được đặt tên một chữ để tăng tốc độ tải về. Đây là quy tắc hay cho các hàm thường dùng và bạn cũng có thể áp dụng để viết mã lệnh chương trình của mình.
Rico là tập hợp một số widget và hiệu ứng động phổ biến được xây dựng trên Prototype. Không nhất thiết sử dụng Rico với Prototype, nhưng kết hợp cả hai giúp xây dựng ứng dụng AJAX dễ dàng hơn nếu bạn muốn các hiệu ứng mà chúng cung cấp.
Đặc biệt, LiveGrid của Rico được đánh giá cao. Đây là tập hàm cải tiến bảng HTML cho phép lấy dữ liệu tự động bên dưới khi người dùng cuộn qua các mẩu tin, giúp hiển thị nhanh khối lượng dữ liệu lớn mà không phải nạp từng trang. Rico thường được xem như phiên bản rút gọn của Dojo nhưng có một số tính năng tốt hơn, như hỗ trợ việc kéo-thả.
Microsoft Atlas
Thư viện Microsoft Atlas miễn phí, nhưng việc áp dụng nó không đơn giản nếu không dùng bộ công cụ Visual Studio của Microsoft. Microsoft hẳn rất vui nếu bạn chịu khó tải về hàng trăm MB các công cụ phát triển trước khi cài đặt thư viện JavaScript của Atlas.
Bản thân thư viện này không yêu cầu nhiều tài nguyên hệ thống, hỗ trợ nhiều trình duyệt như Firefox và Safari nhưng có hạn chế. Bạn có thể bắt gặp trong tài liệu Atlas nhiều câu ghi “Due to a known issue with Atlas on Safari” (có vấn đề với Safari) và cũng có những câu ghi tương tự cho Firefox. Tuy nhiên, đây thường là các vấn đề nhỏ như hộp pop-up biến mất khi người dùng nhấn chuột bên ngoài.
Bộ widget của Atlas hơi ít so với các thư viện khác: không có trình soạn thảo đáng giá và chỉ có vài công cụ hiệu ứng động. Thay vào đó, Atlas tập trung vào việc tích hợp AJAX với server, cụ thể là các dịch vụ web trên nền .NET. Tài liệu và các ví dụ mẫu cho việc này rất tốt. Có một số cơ chế để lấy thông tin từ CSDL và định dạng ở client, chủ yếu dùng C# làm việc trên server và tất cả dều kết hợp tốt với JavaScript trên client.
Atlas có ý nghĩa như là thư viện mở rộng cho nền tảng .Net hơn là công cụ để thực hiện những tính năng hấp dẫn ở client. Nếu bạn đã đầu tư nhiều cho .Net và muốn khai thác hạ tầng dịch vụ web của nền tảng này thì Atlas là giải pháp tốt để thêm sức sống cho các trang web của bạn.
Yahoo AJAX Library
Thư viện AJAX của Yahoo không chỉ là bộ tuyển tập đầy đặn các hàm mà còn là một minh hoạ tốt về cách thức phát hành phần mềm nguồn mở. Mã lệnh bổ sung nhóm widget then chốt vào ứng dụng web của bạn được dồn vào 1 file zip, Yahoo còn cung cấp nhiều ví dụ mẫu và gợi ý thiết kế. Nhiều hàm có đến 6-10 ví dụ khác nhau, tất cả đều có code và trang minh hoạ.
Cách tiếp cận này khác biệt với các sản phẩm khác vì Yahoo muốn thúc đẩy triết lý thiết kế dễ hiểu cùng với việc cung cấp mã lệnh. Chiến lược này quan trọng vì người dùng thông thường vẫn cần được huấn luyện về hoạt động của các ứng dụng AJAX. Các nhà thiết kế của Yahoo muốn đảm bảo các widget AJAX hoạt động ổn định và tài liệu rất hoàn chỉnh của họ phục vụ cho việc này.
Tập các tính năng của thư viện Yahoo phong phú nhưng không bằng Dojo. Có nhiều công cụ thông thường, như thư viện hiệu ứng động và thư viện cây, nhưng chỉ có vài công cụ quan trọng như trình doạn thảo hay bảng động.
Yahoo có bổ sung một số đặc tính hay. Chẳng hạn thư viện hiệu ứng động cũng làm việc với một số công cụ chuẩn, cho phép thực hiện tự động một số hành vi của chương trình HTML. Hay như thư viện quản lý Connection sẽ tự động nối kết tất cả dữ liệu từ form và định dạng thích hợp cho ứng dụng GET hay POST.
Mặc dù thiếu công cụ soạn thảo, nhưng những sự tương tác này đem lại cho thư viện Yahoo vẻ uyển chuyển hơn so với nét “thô ráp” của Open Rico và Zimbra. Khi cần đụng tới mã lệnh với Yahoo Toolkit, bạn sẽ có ấn tượng công ty này đã đầu tư nhiều công sức cho việc tối ưu các hàm chức năng và cung cấp các thư viện thật mạnh.
Sử dụng
Các công cụ AJAX nguồn mở vẫn đang phát triển. Google, Microsoft và Yahoo có lẽ sẽ vẫn tiếp tục kiểm soát chặt dự án AJAX của họ, nhờ vậy tài liệu sẽ luôn tốt. Trong khi đó, các dự án không chịu sự kiểm soát của một công ty nào thường có nhiều biến đổi khi có thêm nhiều người tham gia, sẽ tiếp tục có những ý tưởng sáng tạo nhất và cung cấp các widget hay nhất với tốc độ nhanh nhất.
Thật khó đề cử một thư viện cụ thể nào là tốt nhất vì đa phần tính năng hữu ích của các công cụ phụ thuộc vào phong cách lập trình và nhu cầu của bạn. Tốt nhất bạn nên tìm hiểu qua các công cụ và chọn những thứ mà bạn cần để lắp vào ứng dụng web của mình.
Trang bị công cụ AJAX
Tải về và tìm hiểu nhiều công cụ nguồn mở để chọn những thứ tốt nhất.
• Dojo: dojotoolkit.org
• Google Web Toolkit: code.google.com/webtoolkit
• Microsoft Atlas: atlas.asp.net
• Open Rico and Prototype: openrico.org và prototype.conio.net
• Yahoo AJAX Library: developer.yahoo.com/yui
• Zimbra Kabuki AJAX Toolkit: zimbra.com/community/kabuki_ajax_toolkit_download.html
Tham khảo thêm danh sách các công cụ AJAX nguồn mở tại infoworld.com/4322.
Ý tưởng sử dụng JavaScript có hay không có XML để thêm “tính thông minh” và khả năng tương tác cho trang web đã có từ thời kỳ đầu của web, hiện giờ AJAX là một trong những cách tốt nhất và đơn giản nhất cho công việc này. Các công cụ nguồn mở được xem xét ở đây khá đa dạng đủ để bao trùm thuật ngữ AJAX - Asynchronous JavaScript và XML.
Chọn 6
Vượt qua rất nhiều sản phẩm và giải pháp, sáu sản phẩm nổi bật được các tổ chức uy tín nhất hậu thuẫn được chọn: Dojo, Google Web Toolkit, Microsoft Atlas, Open Rico và Prototype, Yahoo AJAX Library và Kabuki AJAX Toolkit của Zimbra. Atlas của Microsoft không phải nguồn mở nhưng mã lệnh bạn tạo với sản phẩm này thuộc quyền sử dụng của bạn.
Sáu sản phẩm đều cung cấp một số widget (ứng dụng nhỏ có thể chạy trong trình duyệt hoặc chạy độc lập) giao diện người dùng rất hữu ích và các công cụ cơ bản giúp dễ dàng xây dựng ứng dụng AJAX. Chúng rất hấp dẫn với những nhà phát triển muốn thêm một phần mới hay nâng cấp một trang trong ứng dụng hiện có. Ví dụ, nếu muốn thêm một hiệu ứng động hay một bảng dữ liệu động, bạn có thể lấy widget dán vào nơi cần thiết; nói chung chúng đủ tốt để giúp bạn thực hiện các tác vụ cơ bản.
Tuy nhiên, nếu muốn làm những thứ hơi khác một chút, thường thì bạn phải chỉnh sửa mã lệnh (code). Điều này có vẻ quen thuộc với hầu hết lập trình viên từng dùng mã nguồn mở, nhưng các nhà phát triển dường như thích thứ có sẵn hơn. Nếu có kiến thức về lập trình và có thời gian để khai thác sự linh hoạt của nguồn mở thì các công cụ này là lựa chọn lý tưởng. Nếu không quen lập trình hay không có thời gian để “đào sâu”, bạn nên xem xét đầu tư cho các sản phẩm chuyên nghiệp hơn.
Dojo
Đây là dự án AJAX nguồn mở hàng đầu hiện nay. Không hẳn tốt hơn các công cụ khác về một phương diện cụ thể nào đó, nhưng nó có nhiều lựa chọn widget với khả năng tùy biến cao. Có thể hiểu vì sao cả IBM và Sun gần đây đã ký kết hỗ trợ dự án này.
Website của dự án và mã nguồn của nó có ưu điểm của một dự án nguồn mở phong phú, được đội ngũ các nhà phát triển đầy nhiệt huyết điều hành. Cơ chế quản lý này khuyến khích mọi thành phần tham gia miễn là đáp ứng triết lý cơ bản của Dojo là đơn giản và dễ hiểu.
Dojo có trình soạn thảo xuất sắc, nhiều lựa chọn hiệu ứng động, một số công cụ kéo-thả và nhiều thứ khác nữa. Phiên bản mới nhất 0.3.1 có công cụ lấy bản đồ từ Google và Yahoo.
Tuy nhiên, có vẻ như Dojo cũng gặp vấn đề về chất lượng không ổn định phổ biến của các dự án nguồn mở. Một số phần của thư viện Dojo được lập tài liệu và có trang mẫu minh họa tốt, nhưng những phần khác thì để nhà phát triển tự mày mò.
Việc bổ sung một ít tiện ích của Dojo vào ứng dụng web khá đơn giản. Chương trình được phát triển dạng môđun, cho phép ứng dụng web chỉ cần nạp các thành phần cần thiết. Trong nhiều tình huống, tất cả những gì bạn cần là bổ sung thuộc tính DojoType vào mã lệnh HTML của mình, lệnh này sẽ thực hiện công việc khi nạp trang.
Dojo tiếp tục cải tiến khi nó lôi cuốn thêm nhiều nhà phát triển, nhiều ý tưởng và chương trình từ các dự án khác. Có cơ sở để hy vọng dự án này ngày càng có nhiều tính năng phức tạp hơn.
Zimbra Kabuki AJAX Toolkit
Khi Zimbra xuất hiện như một giải pháp quản lý email và lịch làm việc hoàn chỉnh cho một tổ chức, nó gây ấn tượng với việc sử dụng AJAX phức tạp ở mọi cấp. Mọi widget đều được thiết kế để đem lại cảm giác “động” thật sự.
Trọn bộ sản phẩm được cung cấp theo một bản quyền nguồn chung, nhưng công cụ Ajax được Zimbra tách thành một sản phẩm riêng gọi là Kabuki và cấp phép sử dụng theo Apache hay Mozilla. Sản phẩm này bao gồm một số công cụ và widget thiết thực nhưng không có đủ tất cả như bộ sản phẩm lớn. Điều này không có nghĩa công cụ của Zimbra yếu: Kabuki có trình soạn thảo xuất sắc, thư viện cây hay và hệ thống dàn trang có thể xây dựng giao diện người dùng phức tạp.
Sản phẩm của Zimbra không có được các hiệu ứng động hào nhoáng hay phức tạp như Dojo hay thư viện AJAX của Yahoo. Các widget của Kabuki ít chức năng và cũng khá cơ bản. Có thể khắc phục một số hạn chế này bằng style sheet (css) cộng với kỹ năng thiết kế, lập trình.
Google Web Toolkit
Công cụ của Google có điểm dị biệt. Trong khi các công cụ khác viết bằng JavaScript thì Web Toolkit của Google lại viết bằng Java rồi dịch sang JavaScript. Việc này không có gì phức tạp vì JavaScript khá gần gũi với Java.
Tuy nhiên, việc dịch mã là giải pháp thú vị mà các nhà lập trình Java vừa thích lại vừa ngại vì JavaScript làm việc hơi khác với Java.Bộ công cụ này có nhiều widget thông dụng nhưng không có các hiệu ứng động hào nhoáng. Sản phẩm của Google dễ sử dụng, nó được thiết kế để xây dựng ứng dụng hoàn chỉnh chạy trong trình duyệt.
CÔNG CỤ AJAX THƯƠNG MẠI: NÂNG CẤP CUỘC CHƠI
Các sản phẩm nguồn mở có thể cạnh tranh với sản phẩm thương mại? Về tổng thể thì không nhưng về một số tính năng cụ thể thì có.
Trước hết, các công cụ AJAX chuyên nghiệp thường đi kèm môi trường phát triển (IDE) kéo-thả. Ví dụ, Tibco General Interface (infoworld.com/3552) và JackBe (infoworld.com/3234) có IDE hoàn chỉnh chạy trong trình duyệt. Các công cụ nguồn mở hiện tại không có được sự tươm tất này, nhưng chúng có thể chạy theo - Microsoft Atlas được thiết kế để tích hợp với IDE của chính hãng, và công cụ Java-to-JavaScript của Google làm việc tốt với các IDE Java như Eclipse.
Các sản phẩm thương mại cũng đi kèm với trình bẫy lỗi tinh vi. Chẳng hạn, Backbase cố tình bẫy lỗi tích hợp mở ngay ở website của người dùng. Nó được đóng gói chung với ứng dụng trong quá trình kiểm tra và được loại bỏ về sau. Việc bẫy lỗi các sản phẩm AJAX nguồn mở không thật thuận tiện. Dojo và Yahoo có thể ghi nhận các thông điệp để giám sát, còn Google có môi trường hoàn chỉnh chạy trên PC.
Với ứng dụng quan trọng thì công cụ thương mại là giải pháp thích hợp. IceSoft và Nexaweb (infoworld.com/2257) cung cấp các công cụ client phong phú cho phép bạn nhúng thành phần web vào phần mềm client, cho phép bạn tận dụng tất cả kiến thức HTML và JavaScript để xây dựng ứng dụng client. Kapow (infoworld.com/4035) cũng cung cấp công cụ xử lý màn hình tinh vi với thư viện JavaScript nhúng.
Có thể thực hiện những việc tương tự với các công cụ nguồn mở khác nhau, nhưng sẽ phải tốn nhiều công sức hơn.
Open Rice và Prototype
Một trong những dựa án AJAX nổi tiếng, hoàn toàn nguồn mở được tạo nên từ liên minh hai dự án Open Rico và Prototype. Rico và Prototype giống nhau ở điểm chú trọng đến các hiệu ứng động và khác nhau ở một số công cụ thiết thực.
Thư viện Prototype là bộ công cụ cơ bản nhắm đến các nhà lập trình. Nó có các hàm chức năng đơn giản, tất cả đều được đặt tên một chữ để tăng tốc độ tải về. Đây là quy tắc hay cho các hàm thường dùng và bạn cũng có thể áp dụng để viết mã lệnh chương trình của mình.
Rico là tập hợp một số widget và hiệu ứng động phổ biến được xây dựng trên Prototype. Không nhất thiết sử dụng Rico với Prototype, nhưng kết hợp cả hai giúp xây dựng ứng dụng AJAX dễ dàng hơn nếu bạn muốn các hiệu ứng mà chúng cung cấp.
Đặc biệt, LiveGrid của Rico được đánh giá cao. Đây là tập hàm cải tiến bảng HTML cho phép lấy dữ liệu tự động bên dưới khi người dùng cuộn qua các mẩu tin, giúp hiển thị nhanh khối lượng dữ liệu lớn mà không phải nạp từng trang. Rico thường được xem như phiên bản rút gọn của Dojo nhưng có một số tính năng tốt hơn, như hỗ trợ việc kéo-thả.
Microsoft Atlas
Thư viện Microsoft Atlas miễn phí, nhưng việc áp dụng nó không đơn giản nếu không dùng bộ công cụ Visual Studio của Microsoft. Microsoft hẳn rất vui nếu bạn chịu khó tải về hàng trăm MB các công cụ phát triển trước khi cài đặt thư viện JavaScript của Atlas.
Bản thân thư viện này không yêu cầu nhiều tài nguyên hệ thống, hỗ trợ nhiều trình duyệt như Firefox và Safari nhưng có hạn chế. Bạn có thể bắt gặp trong tài liệu Atlas nhiều câu ghi “Due to a known issue with Atlas on Safari” (có vấn đề với Safari) và cũng có những câu ghi tương tự cho Firefox. Tuy nhiên, đây thường là các vấn đề nhỏ như hộp pop-up biến mất khi người dùng nhấn chuột bên ngoài.
Bộ widget của Atlas hơi ít so với các thư viện khác: không có trình soạn thảo đáng giá và chỉ có vài công cụ hiệu ứng động. Thay vào đó, Atlas tập trung vào việc tích hợp AJAX với server, cụ thể là các dịch vụ web trên nền .NET. Tài liệu và các ví dụ mẫu cho việc này rất tốt. Có một số cơ chế để lấy thông tin từ CSDL và định dạng ở client, chủ yếu dùng C# làm việc trên server và tất cả dều kết hợp tốt với JavaScript trên client.
Atlas có ý nghĩa như là thư viện mở rộng cho nền tảng .Net hơn là công cụ để thực hiện những tính năng hấp dẫn ở client. Nếu bạn đã đầu tư nhiều cho .Net và muốn khai thác hạ tầng dịch vụ web của nền tảng này thì Atlas là giải pháp tốt để thêm sức sống cho các trang web của bạn.
Yahoo AJAX Library
Thư viện AJAX của Yahoo không chỉ là bộ tuyển tập đầy đặn các hàm mà còn là một minh hoạ tốt về cách thức phát hành phần mềm nguồn mở. Mã lệnh bổ sung nhóm widget then chốt vào ứng dụng web của bạn được dồn vào 1 file zip, Yahoo còn cung cấp nhiều ví dụ mẫu và gợi ý thiết kế. Nhiều hàm có đến 6-10 ví dụ khác nhau, tất cả đều có code và trang minh hoạ.
Cách tiếp cận này khác biệt với các sản phẩm khác vì Yahoo muốn thúc đẩy triết lý thiết kế dễ hiểu cùng với việc cung cấp mã lệnh. Chiến lược này quan trọng vì người dùng thông thường vẫn cần được huấn luyện về hoạt động của các ứng dụng AJAX. Các nhà thiết kế của Yahoo muốn đảm bảo các widget AJAX hoạt động ổn định và tài liệu rất hoàn chỉnh của họ phục vụ cho việc này.
Tập các tính năng của thư viện Yahoo phong phú nhưng không bằng Dojo. Có nhiều công cụ thông thường, như thư viện hiệu ứng động và thư viện cây, nhưng chỉ có vài công cụ quan trọng như trình doạn thảo hay bảng động.
Yahoo có bổ sung một số đặc tính hay. Chẳng hạn thư viện hiệu ứng động cũng làm việc với một số công cụ chuẩn, cho phép thực hiện tự động một số hành vi của chương trình HTML. Hay như thư viện quản lý Connection sẽ tự động nối kết tất cả dữ liệu từ form và định dạng thích hợp cho ứng dụng GET hay POST.
Mặc dù thiếu công cụ soạn thảo, nhưng những sự tương tác này đem lại cho thư viện Yahoo vẻ uyển chuyển hơn so với nét “thô ráp” của Open Rico và Zimbra. Khi cần đụng tới mã lệnh với Yahoo Toolkit, bạn sẽ có ấn tượng công ty này đã đầu tư nhiều công sức cho việc tối ưu các hàm chức năng và cung cấp các thư viện thật mạnh.
Sử dụng
Các công cụ AJAX nguồn mở vẫn đang phát triển. Google, Microsoft và Yahoo có lẽ sẽ vẫn tiếp tục kiểm soát chặt dự án AJAX của họ, nhờ vậy tài liệu sẽ luôn tốt. Trong khi đó, các dự án không chịu sự kiểm soát của một công ty nào thường có nhiều biến đổi khi có thêm nhiều người tham gia, sẽ tiếp tục có những ý tưởng sáng tạo nhất và cung cấp các widget hay nhất với tốc độ nhanh nhất.
Thật khó đề cử một thư viện cụ thể nào là tốt nhất vì đa phần tính năng hữu ích của các công cụ phụ thuộc vào phong cách lập trình và nhu cầu của bạn. Tốt nhất bạn nên tìm hiểu qua các công cụ và chọn những thứ mà bạn cần để lắp vào ứng dụng web của mình.
Trang bị công cụ AJAX
Tải về và tìm hiểu nhiều công cụ nguồn mở để chọn những thứ tốt nhất.
• Dojo: dojotoolkit.org
• Google Web Toolkit: code.google.com/webtoolkit
• Microsoft Atlas: atlas.asp.net
• Open Rico and Prototype: openrico.org và prototype.conio.net
• Yahoo AJAX Library: developer.yahoo.com/yui
• Zimbra Kabuki AJAX Toolkit: zimbra.com/community/kabuki_ajax_toolkit_download.html
Tham khảo thêm danh sách các công cụ AJAX nguồn mở tại infoworld.com/4322.