【发布时间】:2015-08-30 05:34:06
【问题描述】:
我有一个 chrome 扩展程序,需要查看网页上的每个 <p></p>。我的 chrome 扩展查看 p 文本并检查文本是否位于数组中。问题是,该数组有超过 3,000 个元素,如果可能的话,我非常希望能达到 12,000 个或更多。
以目前的速度,这是不可行的,因为网页需要大约 4 秒的额外时间来加载页面。我的 chrome 扩展在文档末尾运行,因此用户可以从技术上浏览该站点,加载所有内容只需 4 秒。
这是我的代码:
$.each(arrayObj, function(key, value) {
$("p").highlight(key, {caseSensitive: true, className: 'highlight-882312', wordsOnly:true });
});
$('.highlight-882312').each(function() {
var currentKey = $(this).text();
console.log(currentKey);
//do something else here that doesn't really
//apply to the question as it only runs when the user hovers over the class.
});
然后数组看起来很简单,如下所示:
var arrayObj = {
"keyword1": 'keyword_1_site',
"keyword2": 'keyword_2_site',
... etc
... 3,000+ more lines ...
...
}
我假设$.each 不是最有效的,正如我所说,4 秒的加载时间相当长。我能做些什么来提高效率吗?我能在数组中达到 12,000 行吗?
谢谢:)
【问题讨论】:
-
如果你需要一种搜索方法,你可以使用一些研究算法,比如二分法搜索。
标签: javascript jquery performance