3.4.1 Khái niệm Ajax
Để làm rõ về công nghệ Ajax, sau đây sẽ làm một phép so sánh giữa công nghệ web truyền thống và công nghệ web sử dụng Ajax.
Website truyền thống Website sử dụng Ajax
Các website 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 hơn.
Trong khi đó, với các website sử 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 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.
3.4.2 Ajax và Rails
Việc Ajax có mặt trong Rails có phần bắt nguồn từ lịch sử của Rails. Nhưđã giới thiệu ở chương 2, Rails ban đầu được xây dựng để phát triển các ứng dụng sản phẩm của công ty 37signals, khi đó các nhà phát triển cần sử dụng các chức năng Ajax. Việc viết Ajax trực tiếp bằng Javascript gây ra nhiều khó khăn, mà mất nhiều công sức. Trong quá trình đó, công ty đã quyết định xây dựng Ajax trong Rails, các
hàm chức năng của Ajax được đưa vào trong framework. Kết quả là Ruby on Rails trở thành một trong những framework đầu tiên đưa công nghệ Ajax vào framework.
Có hai khía cạnh trong vấn đề Ajax/Rails. Đầu tiên đó là framework Rails đã sử dụng cả hai framework Javascript là Prototype và script.aculo.us, gói chúng lại trong Rails. Từđây Rails xây dựng các helper, cái mà cho phép chúng ta dễ dàng sử
dụng công nghệ Ajax mà không cần phải gõ Javascript. Thay vào đó là những câu lệnh đơn giản, dễ nhớ sẽ tựđộng sinh ra javascript khi chạy ứng dụng.
Chương 4
Ứng dụng triển khai
Để minh họa cho mô hình và tính năng của framework Ruby on Rails, sau
đây tôi xin trình bày tóm tắt các bước phát triển một dự án với framework này.