2015-05-03 5 views
4

Я пытаюсь переключиться с PHP/Nginx на NodeJS Express Jade, и я создал app.js, который содержит весь код, необходимый для запуска сайта NodeJS, проблема в том, что TTFB занимает ~ 1 секунду каждый раз, я используя GZIP и кеширование. Ниже вы можете найти мой app.js кодNode.js Express Jade улучшает TTFB?

var express   = require('express'); 
var subdomain  = require('express-subdomain'); 
var compression  = require('compression'); 
var fs    = require('fs'); 
var path    = require('path'); 
var mime    = require('mime-types'); 
var app    = express(); 
var router   = express.Router(); 
app.set('views',__dirname+'/views'); 
app.set('view engine','jade'); 

app.use(subdomain('cdn',router)); 
app.use(compression({level:9})); 

router.get('*',function(req,resp,next){ 
    CDNDeliver(__dirname+'/cdn/'+req.url,function(data) 
    { 
     resp.header("Access-Control-Allow-Origin", "*"); 
     resp.contentType(mime.contentType(path.extname(__dirname+'/cdn'+req.url))); 
     resp.end(data); 
    }); 
}); 

app.get('/', 
     function(req,resp) 
     { 
      RenderView(resp,'index', 
         function(html) 
         { 

          resp.end(html); 
         } 
        ); 
     } 
); 

app.listen(80,function() 
     { 
      console.log('node.js started'); 
     } 
); 


var ViewCache = {}; 
function RenderView(resp,view,callback) { 
    if(!ViewCache[view]) 
    { 
     ViewCache[view] = resp.render(view); 
     callback(ViewCache[view]); 
    } 
    else 
     callback(ViewCache[view]); 
} 
var CDNCache = {}; 
function CDNDeliver(url,callback) 
{ 
    if(!CDNCache[url]) 
    { 
     fs.readFile(url,function(err,data) 
     { 
      if(!err) 
       CDNCache[url]=data; 
       callback(CDNCache[url]); 
     }) 
    } 
    else 
    callback(CDNCache[url]); 
} 

LoadTime

Может кто-нибудь объяснить, почему TTFB настолько высока, или как я могу уменьшить его?

ответ

-1

Вы можете уменьшить TTFB, переключившись с разработки на производство. Набор:

NODE_ENV=production 
Смежные вопросы