node.js - Nodejs + phantomjs 与纯 phantomjs - 页面加载时间

标签 node.js phantomjs pageload performance

我最近在探索 nodejs 和 phantomjs,并编写了一个小代码来测量页面加载时间。我发现页面加载时间在 nodejs 中包装的 phantomjs 代码与纯 phantomjs 代码之间有所不同。下面是代码:phantomjs和nodejs对比:

Node :

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 倍。有什么想法吗?

最佳答案

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

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

我现在阅读关于 node-webkit 的速度和性能也有同样的问题,这就是支持 Node.js 模块的原生 WebKit。

关于node.js - Nodejs + phantomjs 与纯 phantomjs - 页面加载时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881770/

相关文章:

javascript - 调用PhantomJs函数

javascript - 如果 phantom 卡在 page.open 上,如何退出它(带有示例)

jquery - 页面加载后如何使用 jQuery 滑动

ASP.NET 3.5 : Display UpdateProgress during Page_Load()

node.js - 基于 botframework v4 node.js 在 bot 中查看 Azure blob 存储中保存的聊天记录

javascript - 即使await位于Node.js中的异步函数中,如何修复 "await is only valid in async function"?

node.js - AWS Lambda 函数执行多次(无服务器)

javascript - node.js + MySQL & JSON-result - 回调问题 & 对客户端无响应

javascript - webshot 不会在 html 中渲染本地镜像

html - 检测页面加载*后*禁用 Javascript