Показать сообщение отдельно
  #4 (permalink)  
Старый 27.11.2012, 11:42
Профессор
Посмотреть профиль Найти все сообщения от Антон Крамолов
 
Регистрация: 11.04.2012
Сообщений: 255

exports.render = function(filename) {
    var source = fs.readFileSync(filename, 'utf-8');
    var compiled = compile(source);
    var time = new Date().getTime();

    return function(obj) {
        fs.stat(filename, function(err, stat) {
            if (err) {
                throw new Error(err);
            }
            
            if (new Date(stat.mtime).getTime() > time) {
                fs.readFile(filename, 'utf-8', function(err, data) {
                    if (err) {
                        throw new Error(err);
                    }
                    
                    compiled = compile(data);
                    time = new Date().getTime();
                    console.log('file was changed');
                });
            }
        });
    
        // console.log(compiled);
        return new Function('vars', 'vars=vars||{};var out="";with(vars){' + 
            compiled + '};return out')(obj);
    }
}


Вот обновляются но в последующий раз с этой конченной ассинхронностью какая-то хрень получается. если синхронно сделать, то все будет норм, при изменении шаблона все тут же будет отображаться, а ассинхронно как сделать не представляю(ну вот вариант привел, если чото изменяешь, то сначала из кэша, потом показывается уже измененный вариант)
Ответить с цитированием