我希望有一个时间间隔来跟踪当前页面上正在加载的项目。例如,假设我有一个加载css文件的页面,一些脚本,图片,一个flash视频播放器,然后flash视频播放器加载一个视频文件。加载的元素可能来自或可能不是与页面相同的域。其中一些可能通过ajax或flash加载,而页面上没有标记。我想跟踪每个并创建一个存储有关它们的信息的数组。
我想要一个类似于这个伪代码的脚本:
var all_external_resources = array();
setInterval(function() {
var external_items = list_external_resources();
for (var i in external_items) {
if (all_external_resources.indexOf(external_items[i]) < 0)
all_external_resources.push(external_items[i]);
}
}, 100);
这可能吗?
答案 0 :(得分:9)
您可以使用Resource Timing来检索资源名称:
var resources = window.performance.getEntriesByType("resource");
resources.forEach(function (resource) {
console.log(resource.name);
});
它是Navigation Timing(Can I use...)的扩展,并且在许多浏览器中都受支持。