为什么onResourceReceived被PhantomJS调用了两次

Why is onResourceReceived invoked twice by PhantomJS?

本文关键字:两次 onResourceReceived PhantomJS 调用 为什么      更新时间:2023-09-26

假设我有一个phantomJS脚本,如下所示:

var page = require('webpage').create()
page.onResourceRequested = function (req) {
    console.log('requested: ' + req.url);
};
page.onResourceReceived = function (res) {
   console.log('received: ' + res.url);
};
var url = 'http://localhost:3000/hello.html'
page.open(url, function (status) {
  console.log(page.content);
  phantom.exit();
});

当我运行脚本时,requested只在日志中出现一次,但received出现两次。你能解释一下received为什么出现两次吗?

资源可能非常大。如果是,您会注意到"相同"的两个事件之间存在时间差。这是因为第一个是资源接收的开始,下一个是结束。您可以通过检查response.stage来检查阶段。

参考:page.onResourceReceived