Nodejs + phantomjs与纯幻影 - 页面加载时间

时间:2012-12-14 15:39:40

标签: node.js phantomjs pageload performance

我正在探索recjlty探索nodejs和phantomjs并编写一个小代码来测量页面加载时间。我发现,与纯粹的phantomjs代码相比,nodejs中包含的phantomjs代码的页面加载时间不同。下面是代码:phantomjs和nodejs用于比较:

的NodeJS:

var http = require('http'),
phantom = require('phantom');
url = require("url");

http.createServer(function (request, response) {
  var start = Date.now();

  request.on('end', function () {
    phantom.create(function(ph) {
      ph.createPage(function(page) {
        var _get = url.parse(request.url, true).query;

        page.open(_get[url], function(status) {
          if (status == 'success') {
            var time = Date.now() - start;
            console.log(time);
          }
        });
      });
    });
  });
}).listen(80,'');

Phantomjs:

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

var address = system.args[1];
var time = 0;
var start = Date.now();

page.open(address, function (status) {
  time = Date.now() - start;
  console.log(time + '');
});

通过phantomjs测试网站时,通常是4倍。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

PhantomJS不支持输出数据,它只打开一个网页。 phantomjs-node 以下列方式连接它们 - 它创建一个ExpressJS实例,并通过其socket.io传输数据以及另外两个库。数据如下:

网页> Phantom.js> dnode + node-browserify> Express.js> Socket.io> Node.js的

我现在读到的关于 node-webkit 的速度和性能存在同样的问题,那就是原生的WebKit没有支持Node.js模块的拐杖。

答案 1 :(得分:0)

在某些网站上,我发现这样做有助于Phantom JS的加载时间。

page.settings.loadImages = false;