【问题标题】:Design question Active Record Search vs. Javascript Search设计问题 Active Record Search vs. Javascript Search
【发布时间】:2011-09-01 08:51:56
【问题描述】:

我在一个表中有 300 条记录,其中包括:姓名、地址、城市、州和邮政编码。

  1. 我想在用户访问我的应用程序时提取所有 300 条记录,可能是 JSON 格式(但不一定是数组或 ruby​​ 对象),隐藏在视线之外,但在客户端。
  2. 我想在客户端搜索那些记录

是否存在任何简单的 Javascript/JQuery 库,我可以在其中搜索客户端数据并简单地显示匹配结果。我应该考虑这种方法有什么缺点吗?

特点:用户访问应用,用户看到一个搜索栏,用户输入“Toledo”,应用返回 2 条匹配的 toledo 记录。

【问题讨论】:

    标签: javascript jquery ruby-on-rails search activerecord


    【解决方案1】:

    也许jQuery autocomplete plugin 适合这种情况

    【讨论】:

      【解决方案2】:

      这很简单。除了在找到结果后进行 DOM 操作之外,不确定您需要一个库来做什么。

      function searchArrayFields(search, objectArray)
      {
           var results = [];
           for (var i=0; i < objectArray.length; i++)
           {
              for (var key in objectArray[i])
              {
                  if (objectArray[i][key].indexOf(search) > -1)
                  {
                      results.push(objectArray[i]);
                      break;
                  }
              }
           }
           return results;
      }
      

      这里还有一些示例 dom 的东西。

      function buildAddress(row)
      {
         var retVal = '<div class="container"><div class="name">'+row.name + '</div>';
         retVal += '<div class="address-line-1">'+ row.address+'</div>';
         retVal += '<div class="address-line-2"><span class="city">'+ row.city+'</span>';
         retVal += ' <span class="state">'+ row.state+'</span>';
         retVal += ', <span class="zip">'+row.zip+'</span></div></div>';
         return retVal;
      }
      function displayAddresses(search)
      {
         var rows = searchArrayFields(search, global_db);
         var retVal = [];
         for (var i=0; i < rows.length; i++)
         {
             retVal.push(buildAddresses(rows[i]));
         }
         $('#target').html(retVal.join(''));
      }
      

      假设您的数据是这样存储的,这将是一个标准的 JSON 设置:

      [{name:'John Doe', address:'111 Main Street', city:'Toledo', state:'OH',zip:44343}];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多