20/07/2019, 09:50

Chi tiết về cách hoạt động của AJAX – 5 giai đoạn

Bài viết hôm nay chúng ta sẽ cùng tìm hiểu về cách hoạt động của AJAX . Bên cạnh đó cũng sẽ biết chi tiết các giai đoạn hoạt động của AJAX như thế nào thông qua ví dụ các bạn nhé! Cùng bắt đầu nào! Kubernetes là gì? Cùng tìm hiểu cách hoạt động Tại sao các công ty ...

cách hoạt động của AJAX

Bài viết hôm nay chúng ta sẽ cùng tìm hiểu về cách hoạt động của AJAX. Bên cạnh đó cũng sẽ biết chi tiết các giai đoạn hoạt động của AJAX như thế nào thông qua ví dụ các bạn nhé!

Cùng bắt đầu nào!

  Kubernetes là gì? Cùng tìm hiểu cách hoạt động
  Tại sao các công ty Software Outsourcing hoạt động không giống những gì bạn nghĩ?

Khái niệm cơ bản về AJAX

AJAX (Asynchronous JavaScript and XML) là bộ công nghệ giúp tạo ra các web động hay các ứng dụng giàu tính Internet, 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.

Các nhóm công nghệ hình thành lên AJAX.

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ị.

XML thường là định dạng cho dữ liệu truyền, mặc dù 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.

Xem thêm JSON là gì.

Cách hoạt động của AJAX.

Gồm có 5 giai đoạn:

cách hoạt động của AJAX

  • Giai đoạn 1: Client gửi yêu cầu lên phía server sử dụng XMLHttpRequest. ( trong giai đoạn này sẽ gửi yêu cầu lên một trang php trên phía server).
  • Giai đoạn 2: Server sẽ xử lý yêu cầu.
  • Giai đoạn 3: Truy vấn đến CSDL ( cập nhật ,hoặc truy vấn dữ liệu trong DB).
  • Giai đoạn 4: Trang php trên phía server sẽ trả lại kết quả
  • Giai đoạn 5: AJAX sử dụng cơ chế bất đồng bộ để update lại những phần cần thay đổi thay vì phải làm mới lại toàn bộ trang web.

So sánh cơ chế hoạt động giữa WEB truyền thống và web có sử dụng ajax.

cách hoạt động của AJAX

(Note : hình bên trái không sử dụng ajax, hình bên phái có sử dụng ajax)

Đầu tiên chúng ta cần so sánh đặc điểm của hai cơ chế đồng bộ (Synchronous) và cơ chế bất đồng bộ (Asynchronous).

Cơ chế đồng bộ (Synchronous).

  • Chương trình sẽ chạy theo từng bước và chỉ khi nào bước 1 thực hiện xong thì mới nhảy sang bước 2.
  • Trong một chuỗi các hàm của một quy trình có n tác vụ, trình tự thực hiện các hàm sẽ không bao giờ thay đổi.
  • Hàm A đã được thiết lập để được gọi và chạy trước hàm B thì dù có phải đợi trong thời gian rất dài hàm B cũng phải chờ hàm A kết thúc mới được phép bắt đầu. vì vậy: điều này sinh ra trạng thái chờ

Cơ chế bất đồng bộ (Asynchronous)

  • Chương trình có thể nhảy đi bỏ qua một bước nào đó
  • Trong một chuỗi các hàm của một quy trình có n tác vụ, nếu nó được bảo là bất đồng bộ thì có nghĩa là cho dù hàm B được gọi sau hàm A nhưng không ai đảm bảo được rằng hàm A sẽ phải kết thúc trước hàm B và hàm B bắt buộc phải chỉ được gọi chạy khi hàm A kết thúc.

Như vậy, thông qua đặc điểm của hai cơ chế trên , chúng ta có thể thấy được đặc điểm của trang web truyền thống và trang web hiện đại có sử dụng AJAX như sau.

Xem thêm về Asychronous của nodejs

Với ứng dụng web thường

CLIENT sẽ gửi lên SEVER một HTTP Request. Trải qua một loạt các tác vụ bên phía SEVER như: tính toán, lấy dữ liệu, kiểm tra tính hợp lệ, sửa đổi bộ nhớ… sau đó mới gửi trả lại một trang HTML hoàn chỉnh tới CLIENT.

Về mặt kỹ thuật, phương pháp này nghe có vẻ hợp lý nhưng cũng khá bất tiện và mất thời gian, bởi khi server đang thực hiện vai trò của nó thì người dùng sẽ làm gì ? Có vấn đề gì ở đây ? Mỗi lần như vậy Client sẽ gửi toàn bộ nội dung website lên Server, và Server cũng trả về tương ứng.

Bạn hình dung, khi xem một bài báo, hay website chia sẻ hình ảnh, bạn chỉ quan tâm nội dung bài báo, hình ảnh đó mà thôi, không cần tải hết cả trang làm gì đó. Đó là hạn chế, bạn sẽ phải tốn thời gian chờ đợi thứ không mong muốn.

Với ứng dụng web + AJAX

Ở đây cở chế xử lý AJAX sẽ đóng vai trò làm trung gian giữa CLIENT và SERVER. Thay vì tải lại (refresh) toàn bộ một trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác.

Ví dụ, trong một website ảnh, với ứng dụng truyền thống, toàn bộ trang chứa các ảnh sẽ phải mở lại từ đầu nếu có một thay đổi nào đó trên trang. Còn khi áp dụng AJAX, DHTML chỉ thay thế đoạn tiêu đề và phần vừa chỉnh sửa, do vậy tạo nên các giao dịch trơn tru, nhanh chóng.

Xây dựng ứng dụng với AJAX

Yêu cầu của ứng dụng

Chúng ta sẽ tìm hiểu Ajax Live Search với PHP và MySql với Jquery. Trong hầu hết các trang web, chúng ta có thể thấy có một thanh tìm kiếm trên trang web và chúng ta có thể tìm kiếm nội dung của trang web đó. Nếu bạn đã sử dụng Facebook hoặc twitter, có một chức năng tìm kiếm trực tiếp tuyệt vời có sẵn để tìm kiếm bạn bè hoặc người theo dõi mới.

Trong các trang web giả sử chúng ta nhập một số từ khóa để tìm từ những trang web sau đó chúng ta có thể nhận được kết quả ngay lập tức từ trang web mà không cần làm mới trang. Chức năng này được thực hiện bởi Ajax với Jquery.

Với sự trợ giúp của Jquery. Chúng ta có thể sử dụng AJAX, với sự trợ giúp của AJAX, nó tìm kiếm dữ liệu ở phía máy chủ và gửi kết quả về trang web front end mà không cần refresh lại trang. Chức năng này sẽ cung cấp cái nhìn tuyệt vời cho trang web của bạn.

Xây dựng ứng dụng với AJAX + PHP + JQUERY+ MYSQL

Bước 1: xây dựng Database:chúng ta một cơ sở dữ liệu có tên là :ajax-live-search-data. Sau đó tạo một bảng có tên là tbl_customer.

Bước 2: chúng ta tạo một file index.php để thiết lập một giao diện cho người dùng.

Bước 3 : các bạn tạo một file Js để xử lý ajax có tên là action.js

Bước 4 : bạn tạo một file fetch.php để nhận yêu cầu từ clien và xử lý yêu cầu và trả về kết quả sau khi truy vấn vào CSDL.

Kết quả cuối cùng chúng ta nhận đượccách hoạt động của AJAX

Lời kết

Cách hoạt động của AJAX diễn ra ở 2 giai đoạn: Client sẽ gửi một request theo dạng bất đồng bộ (Asynchronous) tới server. Được gọi là bất đồng bộ là bởi vì trang web trên trình duyệt vẫn duy trì hoạt động như bình thường cho tới khi Server nhận được request từ phía client và trả về kết quả cho client.

Lúc này trình duyệt sẽ cập nhật nội dung trang web dựa trên kết quả trả về. Như vậy bạn có thể thấy được toàn bộ quá trình hoạt động của Ajax không làm gián đoạn sự hiển thị hay tương tác của trang web vào trước và trong thời gian trình duyệt gửi AJAX request tới server.

Chính tính năng này sẽ giúp tăng trải nghiệm của người dùng và đồng thời tối ưu hóa tài nguyên trên server.

Cảm ơn các bạn đã theo dõi bài viết!

Có thể bạn quan tâm:

  • AJAX Là gì? Cách thức hoạt động và lợi ích mà nó mang lại
  • Instant AJAX Search với Laravel và Vuejs
  • Làm thế nào để code jquery một cách tối ưu hơn

Xem thêm việc

0