我正在探索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倍。有什么想法吗?
答案 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;