在我使用 underscore.js 和 jquery 构建的一个简单的 Web 应用程序中。对于所有人(js 对象)的列表,我正在过滤掉他们访问过的所有地方(js 对象)的列表。人员列表是一个td
带有地点图像图标的 html 表格,单击该图标会显示他们访问过的所有地点的列表。图标只需要对至少访问过一个地方的人显示。这里的问题是人员和地点的计数出现了2000
,100
。所以下面的代码执行2000*100
组合。浏览器抱怨我没有响应的脚本。代码如下
_.each(peopleList, function (person, index, list) {
//filter the respective places for people
var visitedPlaces = _.filter(places, function (place) {
return place.PeopleId == person.Id;
});
if (_.isEmpty(visitedPlaces)) {
$("a#" + place.PeopleId).remove();
}
});
死的简单是不是。对于每个人,检查访问过的地方是否对他进行了跟踪。我如何优化上述代码以解除阻塞和响应。尝试在某些地方放置_.defer
,_.delay
但没有改善