Chẩn đoán thời gian chờ proxy Puppeteer theo yêu cầu và mốc trang
Dùng requestfailed cho lỗi mạng và trạng thái HTTPResponse cho phản hồi máy chủ trước khi đổ lỗi cho proxy về việc điều hướng toàn trang chậm.
Phản hồi nhanh từ curl hoặc Axios thường chỉ là một tài nguyên. Puppeteer còn có thể tải script, hình ảnh, frame và API từ nhiều máy chủ, rồi chờ một mốc trang muộn hơn.
Vì proxy đã được cấu hình trên trang hiện có, hãy quan sát từng lỗi riêng lẻ trong quá trình điều hướng:
page.on("requestfailed", request => {
console.log(request.url(), request.failure()?.errorText);
});
await page.goto(targetUrl, {
waitUntil: "domcontentloaded",
timeout: 30000,
});Chạy đoạn này trong quy trình async với targetUrl thật. Ví dụ chờ DOMContentLoaded, mốc này đến sớm hơn so với việc hoàn tất mọi hình ảnh cần thiết hoặc phản hồi ứng dụng muộn hơn. So sánh mốc đó với mốc mà lần điều hướng gốc đã chờ: tài liệu chính, DOM, load hay mạng im lặng là những kết quả khác nhau.
Phản hồi 403 hoặc 500 không phải sự kiện requestfailed. Cũng đọc trạng thái qua HTTPResponse.
Dùng các quan sát để xác định tài nguyên chậm hoặc bị từ chối, xác thực lặp lại hoặc điều kiện chờ muộn hơn. Thời gian chờ dài hơn chỉ kéo dài việc chờ; nó không giảm công việc của trình duyệt và không chứng minh rằng mọi kết nối tài nguyên đều được chấp nhận.