12

我想要一个间隔来跟踪当前页面上正在加载的项目。例如,假设我有一个页面加载一个 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);

这可能吗?

4

1 回答 1

21

您可以使用Resource Timing来检索资源名称:

var resources = window.performance.getEntriesByType("resource");
resources.forEach(function (resource) {
    console.log(resource.name);
});

它是Navigation Timing ( Can I use... )的扩展,并且在许多浏览器中都受支持。

于 2013-08-09T23:48:46.090 回答