PhantomJS比cURL花费更多时间到加载页面

时间:2015-08-23 14:10:49

标签: javascript curl phantomjs

为什么PhantomJS需要这么多时间来加载页面而不是像cURL和file_get_contents这样的其他模块?

我尝试使用PhantomJS以及cURL加载谷歌。 cURL只需加载20-50毫秒,但即使load-images选项设置为false,PhantomJS也需要730毫秒。 PhantomJS缓慢的原因可能是什么?

我已经立即测试了页面加载回调函数内的时差。

这是我的代码:

var page = require("webpage").create();
 page.viewportSize = { width: 1024, height: 768 };

page.open('$url', function(status) {
    console.log('PhantomJS load time:', Date.now() - start);
    page.render('screenshot.png');
    phantom.exit();
 });

我可以使用哪些方法将页面加载速度提升到最大可能范围,一般情况下还是PhantomJS?

1 个答案:

答案 0 :(得分:3)

PhantomJS是一个完整的浏览器(无头,但仍然是一个浏览器)。具有空缓存的完整浏览器需要执行许多请求以获取所有页面资源并等待呈现页面。您可以使用--disk-cache=true选项让PhantomJS为后续请求缓存一些数据,但它仍然比cURL慢得多。

cURL只发出一个请求而不呈现任何内容。当然它更快,因为它不是浏览器。