6

我最近在探索 nodejs 和 phantomjs 并编写了一个小代码来测量页面加载时间。我发现,与纯 phantomjs 代码相比,包裹在 nodejs 中的 phantomjs 代码的页面加载时间不同。下面是代码:phantomjs和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,'');

幻影:

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 倍。有任何想法吗?

4

2 回答 2

0

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

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

我现在在阅读有关node-webkit的速度和性能方面遇到了同样的问题,那是本机 WebKit,没有支持 Node.js 模块的拐杖。

于 2013-08-21T23:56:44.397 回答
0

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

page.settings.loadImages = false;
于 2020-08-10T14:47:32.180 回答