我需要获取页面的“关键字细分”。奖励:它需要非常快。
我应该只扫描 DOM 中的文本节点以提高速度吗?不太确定如何解决这个问题。
你可能最好先做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);
但是,如果不尝试然后进行基准测试,就很难猜测性能,所以我真的想说,尽你最大的努力,然后从那里开始。