2013-12-16 16 views
17

Làm cách nào tôi có thể nhận danh sách các yêu cầu mạng sử dụng Javascript do HTML thực hiện, như được thấy trong trình tìm kiếm chrome.Cách lấy danh sách các yêu cầu mạng được thực hiện bởi HTML

Ví dụ: enter image description here

Đây là DevTools cho google.com. Tôi muốn, bằng cách sử dụng javascript có được tất cả các yêu cầu trong một danh sách. điều này có thể không? nếu có thì sao?

+0

Đây có phải là phần mã của trang web hoặc Tiện ích của Chrome không? – Jasper

+0

Đó là một phần của một trang web, tham chiếu đến chrome devtools chỉ đơn giản là để giải thích loại thông tin tôi muốn nhận được trong javascript ... – Nayish

+0

bạn có thể nhận được một số trong số họ từ DOM, như hình ảnh và hình ảnh css, và css các url trang tính, iframe, flash, v.v., những thứ khác như ajax không thể truy cập được từ js. – dandavis

Trả lời

12

Một số trình duyệt đã triển khai phiên bản not-yet-standard, Resource Timing API nơi bạn có thể thu thập một số thông tin này.

Một số trình duyệt có thể cung cấp một số thông tin này cho tiện ích mở rộng của trình duyệt như một phần của công cụ dành cho nhà phát triển của họ, nhưng điều đó sẽ yêu cầu cài đặt tiện ích mở rộng tùy chỉnh chứ không phải một thứ có thể được thực hiện từ trang web thông thường.

Đối với các hoạt động rất cụ thể nơi bạn kiểm soát mã gọi hoặc bạn biết mã gọi điện, bạn có thể thực hiện một số việc. Ví dụ, nếu bạn biết rằng tất cả các cuộc gọi ajax đi qua một hàm cụ thể, bạn có thể móc hàm đó và trình xử lý hoàn thành của nó và theo dõi tất cả các cuộc gọi ajax.

+0

Tại sao lại là downvote? Điều gì là không chính xác trong câu trả lời này? Hoặc những gì sẽ làm cho nó một câu trả lời tốt hơn? – jfriend00

+0

Điều này là chính xác. Bất kỳ loại kiểm tra ở cấp độ này sẽ phải được thực hiện trong một phần mở rộng (ít nhất là trong trường hợp của Chrome). http://developer.chrome.com/extensions/devtools_network.html – Matt

-1

Bạn có thể nhận URL yêu cầu được thực hiện khi tải trang nhưng truy xuất bất kỳ loại thống kê nào về thời gian tải là không thực tế. Truy vấn các yếu tố tạo các loại yêu cầu tài nguyên như script, link hoặc img.

Ví dụ:

var urls = Array.prototype.map.call(
    document.querySelectorAll("link, img, script, iframe"), // Elements which request external resources 
    function(e) { // Loop over and return their href/src 
     return e.href || e.src; 
    } 
); 
+0

điều này không giải quyết cho các chuyển hướng được thực hiện bởi các yếu tố đó ... – Nayish

+0

Vâng, tất nhiên bạn phải lặp lại các yêu cầu nếu bạn muốn bất kỳ thống kê thực sự nào về chúng. – AdrianCooney

+0

Tôi có nghĩa là chuyển hướng được thực hiện bởi chính elemnts ... như thể nguồn của hình ảnh là trang chuyển hướng đến hình ảnh – Nayish

8

Bạn có thể sử dụng Resource Timing API để có được tất cả các thông tin liên quan (tra cứu tên miền, hits bộ nhớ cache, chuyển hướng, vv) về mỗi tài nguyên đang được nạp vào website của bạn.

Bạn có thể đọc về nó here. Ngoài ra còn có bookmarklet tạo ra thác nước tải trang bằng API này.

API thời gian nguồn có sẵn trong Chrome, Chromium, Chrome Mobile và IE10. Đội Firefox seems to be working on it.

+3

Tôi thấy câu trả lời của bạn hữu ích hơn là chỉ nói "Không thể thực hiện được". Cảm ơn. – JonnieJS

Các vấn đề liên quan