Javascript PhantomJS:onResourceRequested不会为同一域上的第二个page.open()启动

Javascript PhantomJS:onResourceRequested不会为同一域上的第二个page.open()启动,javascript,phantomjs,Javascript,Phantomjs,我有两个连续运行的页打开呼叫。当请求资源时,我将给定资源的url输出到控制台 var page = require('webpage').create(); var resourceCounter = 0; page.onResourceRequested = function (resource) { console.log(resourceCounter++ + '.\t', resource.url); }; page.open('http://phantomjs.org');

我有两个连续运行的页打开呼叫。当请求资源时,我将给定资源的url输出到控制台

var page = require('webpage').create();

var resourceCounter = 0;

page.onResourceRequested = function (resource) {
  console.log(resourceCounter++ + '.\t', resource.url);
};

page.open('http://phantomjs.org');

setTimeout(function () {
  resourceCounter = 0;
  page.open('http://phantomjs.org/documentation');
}, 5000);

setTimeout(function(){
  phantom.exit();
}, 10000);
若我尝试在不同的域上打开两个URL,一切都会按预期进行—我会看到页面请求资源的完整列表。但是,如果我两次请求同一页面,或者像上面的示例中那样从同一域请求两个页面,而不是两次看到页面请求的资源,我会看到:

Resource requests for: http://phantomjs.org/
0    http://phantomjs.org/
1    http://phantomjs.org/
2    http://phantomjs.org/
3    http://fonts.googleapis.com/css?family=Droid+Sans:400,700
4    http://phantomjs.org/css/main.css
5    http://www.google-analytics.com/ga.js
6    https://s3.amazonaws.com/github/ribbons/forkme_left_white_ffffff.png
7    http://phantomjs.org/img/phantomjs-logo.png
8    http://phantomjs.org/img/icon-release.png
9    http://phantomjs.org/img/icon-ml.png
10   http://phantomjs.org/img/icon-bugs.png
11   http://www.google-analytics.com/__utm.gif?utmwv=5.5.0&utms=1&utmn=1675561797&utmhn=phantomjs.org&utmcs=UTF-8&utmsr=2560x1440&utmvp=400x300&utmsc=32-bit&utmul=en-us&utmje=0&utmfl=-&utmdt=PhantomJS%20%7C%20PhantomJS&utmhid=1661770756&utmr=-&utmp=%2F&utmht=1398973179893&utmac=UA-21665893-1&utmcc=__utma%3D205055825.123505717.1398973180.1398973180.1398973180.1%3B%2B__utmz%3D205055825.1398973180.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=q~

Resource requests for: http://phantomjs.org/documentation/
0    http://phantomjs.org/documentation/
1    http://www.google-analytics.com/__utm.gif?utmwv=5.5.0&utms=2&utmn=1424746795&utmhn=phantomjs.org&utmcs=UTF-8&utmsr=2560x1440&utmvp=400x300&utmsc=32-bit&utmul=en-us&utmje=0&utmfl=-&utmdt=Documentation%20%7C%20PhantomJS&utmhid=873610113&utmr=-&utmp=%2Fdocumentation%2F&utmht=1398973180268&utmac=UA-21665893-1&utmcc=__utma%3D205055825.123505717.1398973180.1398973180.1398973180.1%3B%2B__utmz%3D205055825.1398973180.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&utmu=q~
换句话说,通过page.onResourceRequested为第二个page.open调用捕获的结果将被截断

注意:我在禁用缓存时看到这种行为


任何帮助都将不胜感激

由于内存缓存,-disk cache=false将不起作用。如前所述,这个特性还不可用,它将成为PhantomJS2的一部分。您所能做的就是下载更多当前的开发人员,并在您这边构建它,因为该功能已经存在。

谢谢-我找不到这个!我已经运行了PhantomJS 2,但是我看不到与page.settings.clearMemoryCaches=true;有什么不同;。也许API已经改变了?哦,不,你是对的。。阅读看起来该修补程序被拒绝了…也许您可以根据需要应用该修补程序,但这可能会在将来的较新版本中导致一些问题。注意一下。希望这有帮助。