6

最近、nodejs と phantomjs を調べていて、ページの読み込み時間を測定する小さなコードを書きました。純粋な phantomjs コードと比較して、nodejs でラップされた phantomjs コードの間でページの読み込み時間が異なることがわかりました。以下はコードです: 比較のためのphantomjsとnodejs:

Node.js:

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 + '');
});

ファントム js を介してサイトをテストする場合、時間は通常 4 倍長くなります。何か案は?

4

2 に答える 2

0

PhantomJS はデータの出力をサポートしていません。ウェブページを開くだけです。phantomjs-nodeは次の方法でそれらを接続します。ExpressJS のインスタンスを作成し、その socket.io とさらに 2 つのライブラリを使用してデータを送信します。データは次のようになります。

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

Node.jsモジュールをサポートする松葉杖のないネイティブWebKitです

于 2013-08-21T23:56:44.397 に答える