1

我需要获取页面的“关键字细分”。奖励:它需要非常快。

我应该只扫描 DOM 中的文本节点以提高速度吗?不太确定如何解决这个问题。

4

1 回答 1

3

你可能最好先做innerText/textContent然后拆分单词。如果一个词被分割(半个词是粗体)或什么的,寻找文本节点会中断。它还将 DOM 遍历移动到 JS 而不是 C++。

var content = document.body.innerText || document.body.textContent;
var words = content.match(/\b\w+\b/g);

var counts = {};
for (var i = 0, len = words.length; i < len; i++){
  var word = words[i];
  counts[word] = (counts[word] || 0) + 1;
}

console.log(words);

但是,如果不尝试然后进行基准测试,就很难猜测性能,所以我真的想说,尽你最大的努力,然后从那里开始。

于 2013-03-24T00:14:00.667 回答