Việc sử dụng document.write()
có thể làm chậm việc hiển thị nội dung trang hàng chục giây và đặc biệt khó khăn đối với người dùng trên kết nối chậm.
Do đó, Chrome sẽ chặn việc thực thi document.write()
trong nhiều trường hợp, nghĩa là bạn không thể dựa vào trình duyệt này.
Trong Bảng điều khiển của Chrome cho nhà phát triển, bạn sẽ thấy thông báo sau khi sử dụng document.write()
:
[Violation] Avoid using document.write().
Trong Bảng điều khiển dành cho nhà phát triển của Firefox, bạn sẽ thấy thông báo sau:
An unbalanced tree was written using document.write() causing
data from the network to be reparsed.
Cách quy trình kiểm tra Lighthouse document.write()
không thành công
Lighthouse gắn cờ
các lệnh gọi đến document.write()
không bị Chrome chặn:
Đối với các trường hợp sử dụng có vấn đề nhất, Chrome sẽ chặn các lệnh gọi đến document.write()
hoặc phát ra cảnh báo trên bảng điều khiển về các lệnh đó, tuỳ thuộc vào tốc độ kết nối của người dùng.
Dù bằng cách nào, các lệnh gọi bị ảnh hưởng đều xuất hiện trong Bảng điều khiển công cụ cho nhà phát triển.
Hãy xem bài viết Can thiệp vào document.write()
của Google để biết thêm thông tin.
Lighthouse sẽ báo cáo mọi lệnh gọi còn lại đến document.write()
vì điều này ảnh hưởng tiêu cực đến hiệu suất bất kể cách sử dụng và có các giải pháp thay thế tốt hơn.
Tránh document.write()
Xoá mọi trường hợp sử dụng document.write()
trong mã của bạn. Nếu tập lệnh này được dùng để chèn các tập lệnh của bên thứ ba, hãy thử sử dụng tính năng tải không đồng bộ.
Nếu mã của bên thứ ba đang sử dụng document.write()
, hãy yêu cầu trình cung cấp hỗ trợ tính năng tải không đồng bộ.