Pull to refresh

Comments 10

А где можно почитать о том, как с помощью такого парсера совмещать клиентский и серверный код? У меня обычно получилось только делать базовые модели и от них отдельно наследовать клиентские и серверные модели.
Это моё свободное фантазирование о сферах применения, которых, видимо, нигде ещё нет. Пока что мы имеем то, что имеем на Гитхабе у этого парсера и ещё одного. Представляю, что нужно парсить специфические для браузера конструкции и выкусывать их или обращать внимание в интерактиве. Например, находим DOM-зависимые участки и выкусываем их. Хуже, если в DOM хранятся данные. В общем, очень большое поле для будущей деятельности.
Я недавно представлял себе смесь идей PhantomOS (построенная на объектах) + JavaScript. Думаю такой парсер в такой смеси найдет себе очень хорошее применение =)
А в чем проблема, сделать одну модель на сервер и клиент? Если ее абстрагировать от доступа к данным, вывода на экран, обращения к API, работы с сетью и с файлами, то есть, оставить именно бизнес-логику и данные объекта, то проблем не вижу.
Отлично!
Аххх… если бы он еще мог этот JSON загонять обратно в JavaScript…
А чем данный парсер отличается, например, от этого?
Парсер JS, написанный на 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.

Articles