Yêu cầu AJAX ẩn là gì?
Tôi đã nhận thấy sự gia tăng trong việc sử dụng các yêu cầu AJAX ẩn được thiết kế để khiến hành động của người dùng dường như xảy ra ngay lập tức. Tôi sẽ đề cập đến loại yêu cầu AJAX này là không chặn. Đó là một yêu cầu AJAX được thực hiện mà người dùng không biết rằng nó đang diễn ra, nó được thực hiện ở chế độ nền và hoạt động của nó là im lặng ( không có gì dài dòng để chỉ ra việc hoàn thành cuộc gọi AJAX thành công ). Mục tiêu là làm cho hoạt động xuất hiện rằng nó đã xảy ra ngay lập tức khi nó thực sự chưa kết thúc.
Dưới đây là các ví dụ về yêu cầu AJAX không chặn;
- Người dùng nhấp vào xóa trên một bộ sưu tập các email. Các mục biến mất ngay lập tức khỏi hộp thư đến của chúng và chúng có thể tiếp tục với các hoạt động khác. Trong khi đó, một yêu cầu AJAX đang xử lý xóa các mục trong nền.
- Người dùng điền vào một biểu mẫu cho hồ sơ mới. Nhấp chuột lưu. Các mục mới xuất hiện trong danh sách ngay lập tức. Người dùng có thể tiếp tục thêm hồ sơ mới.
Để làm rõ, đây là các ví dụ về việc chặn yêu cầu AJAX;
- Người dùng nhấp vào xóa trên một bộ sưu tập các email. Một con trỏ đồng hồ cát xuất hiện. Yêu cầu AJAX được thực hiện và khi nó đáp ứng, con trỏ đồng hồ cát sẽ bị tắt. Người dùng phải đợi một giây để hoạt động hoàn tất.
- Người dùng điền vào một biểu mẫu cho hồ sơ mới. Nhấp chuột lưu. Biểu mẫu chuyển sang màu xám với trình tải AJAX hoạt hình. Một thông báo được hiển thị "Dữ liệu của bạn đã được lưu" và bản ghi mới xuất hiện trong danh sách.
Sự khác biệt giữa hai trường hợp trên là thiết lập AJAX không chặn không cung cấp phản hồi về hoạt động thực hiện và thiết lập AJAX chặn.
Nguy cơ của các yêu cầu AJAX ẩn
Rủi ro lớn nhất của kiểu yêu cầu AJAX này là ứng dụng web có thể ở trạng thái hoàn toàn khác khi yêu cầu AJAX không thành công.
Ví dụ, một ví dụ không chặn;
- Người dùng chọn một loạt các email. Nhấp vào nút xóa. Các hoạt động dường như xảy ra ngay lập tức (các mục chỉ biến mất khỏi danh sách). Sau đó, người dùng nhấp vào nút soạn thảo và bắt đầu nhập một email mới. Tại thời điểm này, mã JavaScript phát hiện ra yêu cầu AJAX không thành công. Kịch bản có thể hiển thị một thông báo lỗi, nhưng nó thực sự là vô nghĩa tại thời điểm này.
Thay phiên, một ví dụ chặn;
- Người dùng chọn một loạt các email. Nhấp vào nút xóa. Nhìn thấy một giờ kính, nhưng hoạt động thất bại. Họ nhận được một thông báo lỗi "lỗi. Blah blah blah". Chúng được đưa trở lại danh sách các email và chúng vẫn có các email mà chúng muốn xóa được chọn. Họ có thể cố gắng xóa chúng một lần nữa.
Ngoài ra còn có các rủi ro kỹ thuật khác để thực hiện các yêu cầu AJAX không chặn. Người dùng có thể đóng trình duyệt, có thể điều hướng đến một trang web khác và họ có thể điều hướng đến một vị trí khác trong trang web hiện tại khiến bối cảnh của bất kỳ phản hồi lỗi nào đều vô nghĩa.
Vậy tại sao nó lại trở nên phổ biến như vậy?
Facebook, Google, Microsoft, v.v .. tất cả các tên miền lớn này đang ngày càng sử dụng các yêu cầu AJAX không chặn để làm cho các hoạt động xuất hiện mà chúng được thực hiện ngay lập tức. Tôi cũng đã thấy sự gia tăng trong các trình soạn thảo biểu mẫu không có nút lưu hoặc gửi . Ngay khi bạn rời khỏi một lĩnh vực hoặc nhấn enter. Giá trị được lưu. Không có hồ sơ của bạn đã được cập nhật tin nhắn hoặc bước lưu.
Các yêu cầu AJAX không phải là một điều chắc chắn và không nên được coi là thành công cho đến khi chúng hoàn thành, nhưng rất nhiều ứng dụng web lớn đang hoạt động như vậy.
Các trang web này có sử dụng các cuộc gọi AJAX không chặn để mô phỏng các ứng dụng đáp ứng có rủi ro không cần thiết với chi phí xuất hiện nhanh không?
Đây có phải là một mẫu thiết kế mà tất cả chúng ta nên tuân theo để duy trì tính cạnh tranh?