Ще има ли полза предварителното компилиране на шаблони за нефрит при производството в експрес

Когато използвам jade-lang в производството, ще имам ли полза от наличието на някаква форма на междинен софтуер, който предварително компилира всички .jade изгледи и след това ги използва в res.render? Или това се случва автоматично, когато правите NODE_ENV=production?

Просто проучвам опции как да ускоря изобразяването на нефрит в производството.


person TheThing    schedule 06.03.2014    source източник


Отговори (1)


Когато Jade компилира шаблона, той се кешира. В производствена среда, ако загреете кеша, няма нужда от предварително компилиране на шаблон. Дори и да не го направите, шаблонът ще бъде кеширан след първата си компилация.

Препоръчвам ви да погледнете изходния код на Jade, за да разберете по-добре как работи.

exports.render = function(str, options, fn){
  // ...
  var path = options.filename;
  var tmpl = options.cache
    ? exports.cache[path] || (exports.cache[path] = exports.compile(str, options))
    : exports.compile(str, options);
  return tmpl(options);
};

Източник: https://github.com/visionmedia/jade/blob/1.3.0/lib/jade.js#L255-L259

exports.renderFile = function(path, options, fn){
  // ...
  options.filename = path;
  var str = options.cache
    ? exports.cache[key] || (exports.cache[key] = fs.readFileSync(path, 'utf8'))
    : fs.readFileSync(path, 'utf8');
  return exports.render(str, options);
};

Източник: https://github.com/visionmedia/jade/blob/1.3.0/lib/jade.js#L291-L295

person Florent    schedule 06.03.2014
comment
Благодаря много. Ще се потопя по-добре в изходния код :) - person TheThing; 08.03.2014