Chương I: Tổng quan về Ajax Giới thiệu Bạn có sử dụng Gmail? hay Google Map? Bạn có thích tính năng của chúng? hay các tính năng tiện dụng của Flickr? Trên đây là một số các ứng dụng/dịch vụ web nổi lên trong thời gian gần đây như là những ứng dụng không chỉ giàu tính năng mà còn có tính chất “cách mạng” trong lịch sử phát triển của các ứng dụng web. Điểm chung của các dịch vụ web này là gì? Câu trả lời là những tính năng và cách thức nó tương tác với người dùng: rất tiện lợi và nhanh chóng đến nỗi bạn gần như tưởng mình đang sử dụng một phần mềm chứ không phải đang xem trang web. Công nghệ đứng đằng sau các dịch vụ này là AJAX. Cái tên Ajax được nhắc đến lần đầu tiên bởi Adaptive Path và nhanh chóng được chấp nhận rộng rãi trong cộng đồng những người phát triển ứng dụng web và giờ đây có lẽ là cái tên được nhắc đến nhiều nhất và được xem là một công nghệ hứa hẹn sẽ mở ra thời kỳ mới của các ứng dụng web.
Vậy Ajax là gì? Vì sao nó làm được những điều mà các công nghệ trước đây không thực hiện được? Cơ chế hoạt động của nó? Nó có phức tạp không? Làm thế nào để ứng dụng nó cho các sản phẩm của bạn? Có rất nhiều vấn đề liên quan đến Ajax mà chúng ta cần nghiên cứu. 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. 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 xuất hiện cách đây 6 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.1 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ỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web.
AJAX không phải một công nghệ đơn lẻ mà là sự kết hợp một nhóm công nghệ với nhau. Trong đó, HTML và CSS đóng vai hiển thị dữ liệu, 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ộ với 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 điều đáng khâm phục.2 Các lợi thế của Ajax trong lập trình Web Đề tài AJAX trở thành trung tâm trong mọi câu chuyện liên quan đến thế hệ Web 2.1 Nhìn qua về Thế hệ Web thứ 2-Web 2.0 Được xem là cuộc cách mạng thứ hai trên thế giới mạng, thế hệ Web có những thay đổi quan trọng không chỉ ở nền tảng công nghệ mà còn ở cách thức sử dụng - hình thành nên môi trường cộng đồng ở đó mọi người cùng tham gia đóng góp cho xã hội ảo, chứ không đơn giản là “xem” và “duyệt”. Khái niệm Web 2.0 lần đầu tiên được Dale Dougherty, phó chủ tịch của O‟Reilly Media, đưa ra tại hội thảo Web 2.0 lần thứ nhất do O‟Reilly Media và MediaLive International tổ chức vào tháng 10/2004.
Dougherty không đưa ra định nghĩa mà chỉ dùng các ví dụ so sánh phân biệt Web 1.0:“DoubleClick là Web 1.0; Google AdSense là Web 2. Ofoto là Web 1.0; Flickr là Web 2. Britannica Online là Web 1.0; Wikipedia là Web 2. Sau đó Tim O‟Reilly, chủ tịch kiêm giám đốc điều hành O‟Reilly Media, đã đúc kết lại 7 đặc tính của Web 2.0: - Web có vai trò nền tảng, có thể chạy mọi ứng dụng - Tập hợp trí tuệ cộng đồng.
- Dữ liệu có vai trò then chốt. - Phần mềm được cung cấp ở dạng dịch vụ web và được cập nhật không ngừng. - Phát triển ứng dụng dễ dàng và nhanh chóng. - Phần mềm có thể chạy trên nhiều thiết bị.
- Giao diện ứng dụng phong phú. 9 Công nghệ: Kiến trúc công nghệ của Web 2.0 hiện vẫn đang phát triển nhưng cơ bản bao gồm: phần mềm máy chủ, cơ chế cung cấp nội dung, giao thức truyền thông, trình duyệt và ứng dụng. - Cung cấp nội dung: Cơ chế cung cấp nội dung, sử dụng các giao thức chuẩn hóa để cho phép người dùng sử dụng các thông tin theo cách của mình. - Dịch vụ web có hai loại giao thức chính là REST và SOAT.
REST (Representation State Transfer ) là dạng yêu cầu dịch vụ Web mà máy khách truyền đi trạng thái của tất cả các giao dịch; còn SOAP (Simple Object Access Protocol) thì phụ thuộc máy chủ trong việc duy trì thông tin trạng thái.Với cả 2 loại dịch vụ Web đều được gọi qua API. Ngôn ngữ chung của dịch vụ Web là XML, nhưng có thể có ngoại lệ. - Phần mềm máy chủ: Các giải pháp phát triển theo hướng Web 2.0 hiện nay có thể phân làm hai loại hoặc xây dựng hầu hết tính năng trên nền tảng máy chủ duy nhất, hoặc xây dựng ứng dụng thêm cho máy chủ Web, có sử dụng giao thức API. Một số ứng dụng phổ biến của web 2.0 có thể kể đến như: RSS, Đánh dấu xã hội, Viết blog, mạng xã hội, website chia sẻ đa phương tiện, Wikis, mash-up.2 Lợi thế của Ajax Hầu hết các ứng dụng Web sử dụng phương thức request/response (yêu cầu/phản hồi) để chuyển tải một trang HTML từ máy chủ.
Kết quả cứ đến và đi bằng các thao tác click vào button, chờ đợi máy chủ, click button khác, chờ đợi tiếp.Với Ajax và đối tượng XMLHttpRequest, bạn có thể sử dụng phương thức yêu cầu/phản hồi mà người dùng hầu như không phải chờ đợi máy chủ trả lời. 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.
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ẻ. 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. Ajax là một tập hợp các công nghệ, trong đó mỗi công nghệ cung cấp một hệ thống cơ sở nền tảng cho thiết kế và phát triển ứng dụng Web:. 10 - XHTML hay HTML và Cascading Style Sheets (CSS) cung cấp các tiêu chuẩn thể hiện nội dung trang Web với người dùng.
- Document Object Model (DOM) cung cấp cấu trúc cho phép hiển thị động nội dung và các tương tác liên quan. DOM mở ra nhiều cách thức mạnh cho người dùng khi muốn truy cập và thao tác với đối tượng nằm trong một văn bản bất kỳ. - XML và XSLT cung cấp kiểu định dạng cho dữ liệu, để dữ liệu có thể được thao tác, truyền tải hoặc trao đổi giữa máy chủ (server) và máy khách (client). - XMLHttpRequesst Điểm bất cập lớn nhất trong xây dựng ứng dụng Web là mỗi lần một webpage được tải về trình duyệt của người dùng, kết nối server liên quan sẽ bị cắt.
Hơn nữa, đường dẫn bên trong trang còn đòi hỏi phải thiết lập một kết nối khác với server và tải về toàn bộ trang cho dù người dùng chỉ muốn mở rộng một đường link đơn giản. XMLHttpRequest cho phép truy vấn dữ liệu không đồng bộ và đảm bảo các trang web không bị load trở lại khi thay đổi trong yêu cầu người dùng ở mức nhỏ nhất. - JavaScript (JS) là ngôn ngữ kịch bản hợp nhất các đối tượng để hoạt động với nhau một cách hiệu quả, do đó giữ vai trò đáng kể trong ứng dụng web. Chính bởi các thành phần này mà khi nói đến AJAX người ta thường nghĩ đến khả năng tương tác cao, tốc độ nhanh và dễ dùng.3 Các công cụ phát triển Ajax - Atlas, toolkit Ajax của Microsoft.
- Dojo Toolkit, toolkit Ajax/DHTML. - Prototype, khuôn khổ mã nguồn mở. - Sajax, toolkit Ajax đơn giản 1.3 Các công nghệ trong Ajax Như đã nói ở trên, Ajax là tập hợp của nhiều công nghệ. Chúng ta sẽ tìm hiểu thêm về các công nghệ có trong Ajax .1 Casscading Style Sheet – CSS CSS tạm dịch là một kiểu bảng xếp chồng – là một phần không thể thiếu trong thiết kế Web.
Một Style Sheet đưa ra cách kiểm soát các định dạng trực quan, nó có thể áp dụng cho các phần riêng lẻ trên một trang. 11 CSS định dạng một trang Web theo ba cách: - Sử dụng trực tiếp kèm với các thẻ HTML. - Định nghĩa trong một trang Web. - Định nghĩa thành một file CSS riêng.
Các ưu điểm của CSS trong thiết kế Web: - Giúp tiết kiệm thời gian và công sức trong thiết kế Web. - Cho phép điều khiển các định dạng và cách bố trí của cùng lúc nhiều trang web với chỉ duy nhất một lần thay đổi tại một vị trí. - Có thể định nghĩa nhiều StyleSheet trong một thẻ HTML. Cú pháp cơ bản của CSS gồm ba thành phần: - Thành phần lựa chọn (thường là một thẻ HTML) (Selector) - Thuộc tính (Property) - Giá trị (Value) 1.2 Document Objet Model – DOM DOM giúp phân tích một tài liệu phục vụ cho cơ chế của JavaScript.
Sử dụng DOM, cấu trúc của tài liệu được phân rã theo cấu trúc cây và thao tác theo các nút. Đây là một khả năng đặc biệt hữu ích để viết một ứng dụng Ajax. Trong một ứng dụng Ajax, sự thay đổi giao diện người dùng chủ yếu được tạo ra bởi DOM. Các thẻ HTML trong trang web được tổ chức theo cấu trúc cây.
Gốc cây là thẻ <html>, để biểu diễn tài liệu. Trong đó, thẻ <body> biểu diễn phần thân tài liệu, là gốc của phần hiển thị tài liệu.