Trong trang web thương mại điện tử, khi thêm một mặt hàng vào giỏ hàng, tôi muốn hiển thị cửa sổ bật lên với các tùy chọn bạn có thể chọn. Hãy tưởng tượng bạn đang đặt mua một chiếc iPod Shuffle và bây giờ bạn phải chọn màu sắc và văn bản để khắc.
Tôi muốn cửa sổ là phương thức, vì vậy tôi đang sử dụng hộp đèn được tạo bởi một cuộc gọi Ajax. Bây giờ tôi có hai lựa chọn:
Tùy chọn 1: Chỉ gửi dữ liệu và tạo đánh dấu HTML bằng JavaScript
Điều tuyệt vời ở đây là nó cắt giảm yêu cầu Ajax xuống mức tối thiểu và không trộn dữ liệu với đánh dấu.
Điều không tuyệt vời ở đây là bây giờ tôi cần sử dụng JavaScript để thực hiện kết xuất của mình, thay vì có một công cụ mẫu ở phía máy chủ thực hiện việc đó. Tôi có thể có thể làm sạch cách tiếp cận một chút bằng cách sử dụng giải pháp tạo khuôn mẫu phía máy khách .
Tùy chọn 2: Gửi đánh dấu HTML
Điều tốt ở đây là tôi có thể có cùng một công cụ tạo khuôn mẫu phía máy chủ mà tôi đang sử dụng cho phần còn lại của các tác vụ kết xuất (Django), thực hiện kết xuất hộp đèn. JavaScript chỉ được sử dụng để chèn đoạn HTML vào trang. Vì vậy, nó rõ ràng để lại kết xuất cho công cụ kết xuất. Có nghĩa với tôi.
Nhưng tôi không cảm thấy thoải mái khi trộn dữ liệu và đánh dấu trong một cuộc gọi Ajax vì một số lý do. Tôi không chắc điều gì khiến tôi cảm thấy khó chịu về điều đó. Ý tôi là, nó giống như mọi trang web được phục vụ - dữ liệu cộng với đánh dấu - phải không?