Vietnamese [Tiếng Việt] translation by Dai Phong [you can also view the original English article]
Nếu đã theo dõi ba bài hướng dẫn trước, thì bạn chắc đã hiểu rõ về AJAX. Trong bài cuối cùng này, chúng ta sẽ tổng hợp mọi thứ bằng cách làm việc với một ví dụ phức tạp hơn.
Mã HTML
Để có được một ý tưởng về cấu trúc của ví dụ này, hãy xem các mã đánh dấu sau đây:
Mã đánh dấu cho phần tử main
được hiển thị dưới đây:
Popular front-end frameworks
Click each one to load details via AJAX.
Bootstrap Foundation UIkit Semantic UI Skeleton Material Design Lite
Lưu ý các liên kết. Những liên kết này tương ứng với các framework khác nhau cho front-end. Như chúng ta sẽ thấy trong phần tiếp theo, mỗi khi chúng ta nhấn vào các liên kết,
một yêu cầu AJAX sẽ được thực hiện. Sau đó, phần tử với lớp modal
sẽ xuất hiện và nội dung của nó sẽ được cập nhật bằng các dữ liệu lấy được từ dữ liệu trả về.
Dưới đây là minh hoạ cho phần tử main
:
Mặc dù chúng ta đã cập nhật nội dung của modal của chúng ta, thì nó vẫn bị ẩn. Nó hiển thị và loader biến mất khi yêu cầu thành công. Sau đó, hàm callback alwaysFunction
được thực hiện:
function alwaysFunction[] { $loader.hide[]; $modal.addClass['active']; }
Lớp active
trông giống như thế này:
.active { opacity: 1; z-index: 10; transform: scale[1]; }
Dưới đây bạn có thể thấy diện mạo mong muốn của modal nếu chúng ta nhấn vào liên kết có chữ Bootstrap
:
Một vài tình huống
Điều quan trọng cần phải hiểu là các đoạn mã được thực thi trong những trường hợp nhất định. Hãy bao quát hai trường hợp phổ biến:
- Giá trị của thuộc tính
name
không phù hợp với các liên kết của phần tửmain
. Ví dụ, giả sử chúng ta xác định một URL nơi mà giá trị của thuộc tínhname
của các đối tượng có liên quan đến đến framework Foundation làFoundation2
thay vìFoundation
. Trong trường hợp này, nếu chúng ta nhấn vào liên có chữFoundation
, modal dưới đây sẽ xuất hiện:
- Dữ liệu trả về là rỗng. Ví dụ, chúng ta định nghĩa một URL trỏ đến một mảng rỗng. Trong trường hợp này, modal sẽ trông như thế này:
Xử lý các lỗi
Vì vậy, chúng ta xem xét đoạn mã được chạy khi yêu cầu thành công. Nhưng điều gì sẽ xảy ra nếu yêu cầu thất bại? Trong trường hợp của chúng ta, một yêu cầu không thành công, chúng ta ẩn danh sách và hiển thị một tin nhắn tùy biến.
Đây là đoạn mã của hàm failFunction[]
minh hoạ hành vi đó:
function failFunction[request, textStatus, errorThrown] { $list.hide[]; $message.text['An error occurred during your request: ' + request.status + ' ' + textStatus + ' ' + errorThrown]; }
Để tự làm quen với đoạn mã này, chúng ta chỉ định một URL không tồn tại. Do đó, phương thức fail
sẽ được kích hoạt và modal bên dưới sẽ được hiển thị:
Lưu ý: Một lần nữa, thông báo lỗi có thể khác nhau nếu bạn chạy ví dụ này tại cục bộ.
Đây là bản demo nhúng từ Codepen:
Kết luận
Trong hướng dẫn này, chúng ta tổng hợp bài nghiên cứu về AJAX từ góc nhìn của một nhà thiết kế - mà bạn đã theo dõi! Tôi hy vọng rằng bạn thấy loạt bài này hữu ích và bạn đã học được một số kỹ năng mới.
Bước tiếp theo, tôi khuyên bạn bạn xem xét những điều sau đây:
- Làm quen với các phương
thức rút gọn của AJAX trong jQuery mà chúng ta chưa tìm hiểu [ví dụ phương thức
$.getSON
]. - Cài đặt các yêu cầu AJAX của bạn bằng cách truy xuất các tập tin tĩnh hoặc dữ liệu động đến từ các dịch vụ bên thứ ba [ví dụ Flickr].