2012-12-14 7 views
6

मैं नोडजेस और फैंटोमज की खोज के बारे में पोकिंग कर रहा था और पृष्ठ लोड समय को मापने के लिए एक छोटा कोड लिखा था। मैंने पाया है कि पृष्ठ लोड समय शुद्ध 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 + ''); 
}); 

समय आमतौर पर 4 लम्बे समय जब phantomjs के माध्यम से एक साइट का परीक्षण कर रहा है। कोई विचार?

+1

फ़ैंटॉमजेएस (दोनों मामलों के लिए) से नेटवर्क यातायात को डंप करें और उनकी तुलना करें। Https://github.com/ariya/phantomjs/wiki/Network-Monitoring देखें। –

+1

कृपया आप स्पष्टीकरण दे सकते हैं, सीधे phantomjs कॉल phantomjs और nodejs से 4 गुना लंबा है? –

+0

http://phantomjs.org/network-monitoring.html (नया लिंक) –

उत्तर

0

फ़ैंटॉमजेएस डेटा आउटपुट का समर्थन नहीं करता है, यह केवल एक वेबपृष्ठ खोलता है। phantomjs-node उन्हें निम्न तरीके से कनेक्ट करें - यह ExpressJS का एक उदाहरण बनाता है और दो s पुस्तकालयों का उपयोग करके अपने सॉकेट.io प्लस के माध्यम से डेटा प्रसारित करता है। और डेटा जाता है:

वेबपेज> Phantom.js>dnode + node-browserify> Express.js> Socket.io> Node.js

मैं गति और प्रदर्शन के बारे में अभी node-webkit पढ़ने के साथ एक ही समस्या है, मूल वेबकिट बिना क्रैच के जो Node.js मॉड्यूल का समर्थन करता है।

संबंधित मुद्दे