【问题标题】:Design question Active Record Search vs. Javascript Search设计问题 Active Record Search vs. Javascript Search
【发布时间】:2011-09-01 08:51:56
【问题描述】:
我在一个表中有 300 条记录,其中包括:姓名、地址、城市、州和邮政编码。
- 我想在用户访问我的应用程序时提取所有 300 条记录,可能是 JSON 格式(但不一定是数组或 ruby 对象),隐藏在视线之外,但在客户端。
- 我想在客户端搜索那些记录
是否存在任何简单的 Javascript/JQuery 库,我可以在其中搜索客户端数据并简单地显示匹配结果。我应该考虑这种方法有什么缺点吗?
特点:用户访问应用,用户看到一个搜索栏,用户输入“Toledo”,应用返回 2 条匹配的 toledo 记录。
【问题讨论】:
标签:
javascript
jquery
ruby-on-rails
search
activerecord
【解决方案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}];