Comments 10
А где можно почитать о том, как с помощью такого парсера совмещать клиентский и серверный код? У меня обычно получилось только делать базовые модели и от них отдельно наследовать клиентские и серверные модели.
Это моё свободное фантазирование о сферах применения, которых, видимо, нигде ещё нет. Пока что мы имеем то, что имеем на Гитхабе у этого парсера и ещё одного. Представляю, что нужно парсить специфические для браузера конструкции и выкусывать их или обращать внимание в интерактиве. Например, находим DOM-зависимые участки и выкусываем их. Хуже, если в DOM хранятся данные. В общем, очень большое поле для будущей деятельности.
А в чем проблема, сделать одну модель на сервер и клиент? Если ее абстрагировать от доступа к данным, вывода на экран, обращения к API, работы с сетью и с файлами, то есть, оставить именно бизнес-логику и данные объекта, то проблем не вижу.
Отлично!
Аххх… если бы он еще мог этот JSON загонять обратно в JavaScript…
Аххх… если бы он еще мог этот JSON загонять обратно в JavaScript…
А чем данный парсер отличается, например, от этого?
Парсер JS, написанный на JS это само по себе не новость.
Парсер JS, написанный на JS это само по себе не новость.
Может быть, новый быстрее работает и оптимизирован для современных браузеров.
Вы не читали текст статьи, там приводятся названия 3 более современных парсеров на JS и даже сравнение их в тестах.
Парсер JS, написанный на JS это само по себе не новость.
Вы не читали текст статьи, там приводятся названия 3 более современных парсеров на JS и даже сравнение их в тестах.
" Этот " «парсер» неработает и давится вот, например, на таком коде
Array.prototype.group = function(field, clear)
{
var g = {};
if(typeof field == "function")
{
var fun = field;
var scope = clear;
this.each(function(ix, it, f)
{
if((f = f.call(scope, it)) in this){
this[f].push(it);}
else{
this[f] = [it];}
}, g, fun);
}
else
{
this.each(clear ? (
function(ix, it, f)
{
it = _extend({}, it);
var t = it[f];
delete it[f];
if(t in this){
this[t].push(it);}
else{
this[t] = [it];}
}) : (
function(ix, it, f)
{
if((f = it[f]) in this){
this[f].push(it);}
else{
this[f] = [it];}
}),
g, field);
}
return g;
};
«Этот» парсер используется здесь, и такие вещи его не смущают.
В ссылке приведенной выше облегченная версия этого парсера.
В ссылке приведенной выше облегченная версия этого парсера.
Sign up to leave a comment.
Esprima — парсер для javascript, написанный на javascript