PhantomJS:打开多个页面时,资源请求只有一次

时间:2013-10-30 04:20:52

标签: phantomjs

  • 页面A:在存在资源“common.css”
  • 页面B:在存在资源“common.css”

当幻像打开A和B页时,common.css的资源请求只有一次。

-

示例代码:

casper.on('resource.requested', function(req) {
    if (req.url.indexOf('common.css') != -1) {
        util.dump(req);
    }
});

-

每次如何发送资源请求?

感谢。

1 个答案:

答案 0 :(得分:1)

这是因为内存缓存。作为无头浏览器,phantomJS具有用于HTTP请求的浏览器缓存(基于HTTP头)。所有页面实例都使用相同的内存缓存,这就是为什么只请求一次相同的ressource。

我知道有a pull request用于清除请求之间的缓存,但这是一个很新的问题,直到至少2.0(没有发布日期)才会合并。

我现在发现的唯一解决方案是为每个测试生成一个新的phantomjs进程(当然没有磁盘缓存)。