Thật tình mà nói mình chưa bao giờ là fan của AJAX. Chúng ta đều đồng ý với nhau rằng Javascript là một phần không thể thiếu trên website của chúng ta(tuy nhiên trong bài này mình chỉ dùng Javascript như là một căn nguyên để liên tưởng tới AJAX chứ không bàn bạc về nó :)). Hầu như rất ít trang web nào mà không có Javascript, và chúng ta cũng đều biết rằng nó là khởi nguồn của AJAX. Trong bài này, chúng ta cùng bàn xem những mặt lợi và hại của AJAX, lúc nào cần sử dụng, lúc nào không và sử dụng như thế nào cho hiệu quả trên website của mình nhé.
Phụ mục
AJAX làm cho Javascript thêm nhiều niềm vui
Một phần lý do mà tôi không thích sử dụng Javascript bởi vì nó nhàn chán quá ! Tại sao ? Bởi tôi có thể kiếm được bất cứ đoạn code nào tôi cần trên mạng mà không cần phải suy nghĩ và sáng tạo ra nó – đây là niềm vui của lập trình viên. Ngoài ra hầu hết các đoạn mã Javascript chỉ sử lý dưới client và làm nhiệm vụ chính là xử lý các hiển thị trên website thì nhiều, thao tác vơi server thì hầu như rất ít.
Nhưng đó là trước khi chúng ta biết kế AJAX cũng như sử dụng AJAX. Đột nhiên chúng ta quan tâm hơn đến cách trình duyệt sử dụng Javascript bởi nó cho phép chúng ta có thêm một phương án nữa để tăng tốc độ xử lý website và thao tác với dữ liệu trên hệ thống thông qua XML và DOM. Và rồi, những giải thuật xử lý dữ liệu sao cho tương thích và thích hợp với từng website lại sản sinh những niềm vui mới cùng Javascript. Xử lý XML và DOM kéo theo rất nhiều việc “hay ho” để làm :D
Không cần phải bàn nhiều về tác dụng của Ajax nữa bởi hầu hết các bạn đều dễ dàng nắm được rồi phải không. Chúng ta chỉ cần một ví dụ đơn giản là có thể hiểu được nó : bạn có 10 email thuộc 10 nhà cung cấp khác nhau. Như vậy muốn check 10 email này bạn phải login 10 trang web và kiểm tra để nhận được 1 thông báo giống nhau: “Bạn không có email nào mới“. Với AJAX mọi chuyện sẽ dễ dàng hơn: check 1 website duy nhất cho phép kết nối với 10 website kia và hiển thị thông báo bất kì lúc nào mà bạn có email….
Tại sao nên sử dụng AJAX
Có lẽ trong đầu bạn đang hình dung 1 lý do rất ư là… công nghệ: “bởi vì nó cool lắm!“, hay là “bởi vì sếp bảo phải làm vậy“. Phần lớn mình gặp những bạn muốn áp dụng AJAX vào website nhằm mong muốn website mình “theo kịp thời đại“. Nhưng mình khuyên bạn không nên chạy theo như vậy. Hãy đánh giá một cách nghiêm túc hơn sự lựa chọn của bạn và đặt ở vị trí khách hàng truy cập, sử dụng tư duy của họ để đặt ra những câu hỏi như “Họ cần nó để làm gì ?” hay “Điều gì sẽ làm họ cảm thấy sử dụng website của bạn thật đơn giản ?“…
Tại sao không nên sử dụng AJAX
Nhìn những trang web sử dụng ứng dụng AJAX có lẽ bạn sẽ cảm thấy nó thật “cool” và giống một ứng dụng real time(cho phép bạn xem hầu như ngay tức khắc các thay đổi mà không cần phải refesh lại trang). Nhưng hãy suy nghĩ về những khía cạnh sau. Giả sử tôi có một ứng dụng tab có nhiều dữ liệu hiển thị trong mỗi tab và sử dụng XML để load các dữ liệu này lên mỗi khi bạn nhấp vào tab. Cái này nhiều bác VN sử dụng lắm đây.
Có vẻ nó là một ứng dụng nên sử dụng và tốt cho trang web của bạn. Nhưng mời bạn nghĩ đến những điều sau:
- Các tab không thể được đánh dấu. Do đó người truy cập không thể lưu được thông tin mà họ muốn(trừ khi nó là tab đầu tiên hiện ra).
- Công cụ tìm kiếm (SE – www.vnwebmaster.com) không thể index được dữ liệu trong các tab không phải là tab đầu tiên bởi vì nó không thể đi sâu vào AJAX và thực hiện các hành động như người dùng.
- AJAX sẽ không thể sử dụng được nếu ai đó sử dụng các trình duyệt thế hệ cũ không hỗ trợ Javascript hoặc các trình đọc màn hình (screen reader).
- Nếu một tab có nhiều thông tin và cần thời gian để tải lên, website của bạn sẽ dễ bị phá vỡ (trong lúc chờ đợi). Ngoài ra, còn một vấn đề nữa là bị mất kết nối trong quá trình tải thông tin (thường xảy ra với các kết nối chậm), trong trường hợp này người dùng sẽ…. chờ hoài, chờ mãi và phát sinh tâm lý bực bội, không muốn sử dụng website.
Những lý do trên thật sự cũng rất đáng cho bạn quan tâm phải không :) Có một số website sử dụng thẻ DIV ẩn và hiển thị nó lên khi người dùng click chuột – cái này cũng hay nhưng không phải là AJAX, tất nhiên là đồng nghĩa với nó là thời gian tải trang sẽ lâu hơn.
Được rồi, giờ chúng ta quay lại một tí với lý do sử dụng AJAX. Dám cá, 90% các bạn sử dụng AJAX trên website là bởi vì nó “cool”, nó thời đại, hoặc sếp các bạn bắt các bạn phải làm thế (mình bị rồi). Không tin hãy ngẫm xem :D
AJAX hiển thị nội dung không chính xác
AJAX là một quá trình xử lý không đồng bộ, do đó cái bạn đọc rất có khả năng không đúng với thực tế bởi người dùng lại làm cái khác trong quá trình chúng ta đọc bài và làm ảnh hưởng đến nội dung đang đọc.
Do đó, nếu nội dung dữ liệu của bạn không bao giờ thay đổi hoặc không thay đổi liên tục (ví dụ không thay đổi hàng giờ) thì bạn không nên dùng AJAX cho nó.
Những ứng dụng bạn nên sử dụng AJAX
Kiểm tra dữ liệu đầu vào
Cái này không phả cho “đẹp” hoặc cho “sang” mà bởi tính tiện dụng của nó. Người dùng đầu cuối không phải lúc nào cũng có những hiểu biết về dữ liệu đầu vào hợp lệ. Nếu chờ đợi người dùng gửi dữ liệu lên máy chủ để kiểm tra rồi lại trả về lỗi để người dùng chỉnh sửa dữ liệu cho tương thích thì rất lâu, chưa kể trường hợp họ nhập dữ liệu sai nhiều lần. Nếu sử dụng AJAX, quá trình kiểm tra chúng ta thực hiện ngay khi họ hoàn tất dữ liệu một phần nào đó, nếu có lỗi chúng ta thông báo ngay để họ chỉnh sửa lập tức. Điều này tăng tính tiếp cận với người dùng đầu cuối. Họ sẽ cảm thấy website của bạn dễ sử dụng hơn.
Comment
Hay còn gọi là Bình luận trong tiếng Việt. Đây là chỗ mà AJAX tỏ ra tuyệt vời nhất. Ý kiến có thể thay đổi liên tục theo thời gian thực và sẽ đẹp hơn khi họ nhấn nút Gửi thì lập tức dữ liệu xuất hiện trên website.
Lọc dữ liệu
Nếu bạn có một bản dữ liệu lớn và một bộ lọc (filter, sort) thì sử dụng AJAX là một lựa chọn không tồi tí nào khi hiển thị. Webiste của bạn sẽ tương tự như một bản tính của Excel mà mỗi lần yêu cầu tìm kiếm thay đổi nội dung sẽ lập tức hiển thị. Rất đẹp mắt !
Khảo sát và tham dò ý kiến (Poll)
Khi bạn bấm vào nút “Bình chọn“, các lựa chọn sẽ chuyển sang các kết quả bình chọn sẽ rất đẹp mắt và trực quan với người dùng.
Làm gì khi bạn nhận được yêu cầu đòi hỏi phải sử dụng AJAX?
Câu hỏi này sẽ không thừa tí nào đúng không?
Hãy hỏi xem sếp bạn hoặc bộ phận yêu cầu lý do tại sao họ muốn sử dụng AJAX trên website. Một khi đã hiểu được lý do, chúng ta sẽ có nhiều lựa chọn thay thế hoặc quyết định sử dụng AJAX hay không một cách dễ dàng hơn. Chúng ta cần biết rằng luôn luôn có hơn 1 cách để hoàn thành công việc.
Nhắc nhờ sếp hoặc bộ phận yêu cầu về những điều không hay mà AJAX mang lại (mình đã liệt kê ở trên). Có rất nhiều thứ cấu thành sự quan tâm của khách hàng đối với website chứ không phải chỉ có AJAX. Chúng ta sẽ đánh giá xem mặt lợi và mặt hại của AJAX cái nào có ý nghĩa hơn và lựa chọn có sử dụng hay không. Đặc biệt, nếu muốn quảng bá website thì nhắc họ kĩ hơn về vấn đề công cụ tìm kiếm không để tâm nhiều đến AJAX và họ đang chịu thiệt thòi hơn về SEO nếu sử dụng AJAX.
Nếu bạn thấy bài viết này hữu ích cho bạn, hãy để lại một nhận xét nhé :)
luubk says
Bài viết rất hay! Xin cảm ơn!
Hà Huy says
Có lẽ bạn không là fan của ajax nên có vài ý kiến mình nghĩ là hơi mang tính chủ quan và không chính xác lắm
Nhưng dù sao đây cũng là 1 bài viết hay!
mu bao hiem says
Nói chung là Ajax nó có cái hay riêng của nó. Nếu chú trọng về mặt làm SEO thì Ajax rõ ràng ko thích hợp. Nhưng đối với các trang chuyên về Event hoặc Media thì Ajax rõ ràng là một giải pháp hợp lý, nó giúp người dùng dỡ phải tốn nhiều thời gian chờ đợi load cả trang web :).
Nguyễn Minh Tuấn says
Mới tập tành học ajax nên ko biết đánh giá thế nào? nhug bài viết of anh cũng rất hay? >:D:D:D:D< :P
Nguyễn Duy Nhân says
Cám ơn bạn và chúc bạn học hành tấn tới :)
Hùng says
Bài viết hay,có chức năng like facebook chắc hay và dễ tìm
Bắc says
Bài viết khá thú vị