Sử dụng document.write()

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 gây ra vấn đề cho người dùng có kết nối chậm. Do đó, trong nhiều trường hợp, Chrome sẽ chặn việc thực thi document.write(), nghĩa là bạn không thể dựa vào phương thức này.

Trong Bảng điều khiển Công cụ 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 Công cụ cho nhà phát triển 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 kiểm tra document.write() của Lighthouse không thành công

Lighthouse gắn cờ các lệnh gọi đến document.write() mà Chrome không chặn:

Kết quả kiểm tra Lighthouse cho thấy mức sử dụng document.write

Đối với các trường hợp sử dụng gặp nhiều vấn đề nhất, Chrome sẽ chặn các lệnh gọi đến document.write() hoặc phát cảnh báo về các lệnh gọi đó trên bảng điều khiển, 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 sẽ xuất hiện trong Bảng điều khiển DevTools. Hãy xem bài viết Can thiệp chống lại document.write() của Google để biết thêm thông tin.

Lighthouse báo cáo mọi lệnh gọi còn lại đến document.write() vì lệnh gọi này ảnh hưởng bất lợi đế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á tất cả các trường hợp sử dụng document.write() trong mã. Nếu bạn đang sử dụng tính năng này để chèn 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 nhà cung cấp hỗ trợ tính năng tải không đồng bộ.

Tài nguyên