ページの「キーワードの内訳」を取得する必要があります。ボーナス:それは非常に速い必要があります。
速度を上げるために、テキストノードについてのみDOMをスキャンする必要がありますか?これにどのようにアプローチするかはよくわかりません。
ページの「キーワードの内訳」を取得する必要があります。ボーナス:それは非常に速い必要があります。
速度を上げるために、テキストノードについてのみDOMをスキャンする必要がありますか?これにどのようにアプローチするかはよくわかりません。
innerText
おそらく、 /を実行してからtextContent
単語を分割するのが最善でしょう。単語が分割されている(単語の半分が太字である)などの場合、テキストノードの検索は中断されます。また、DOMトラバーサルをC++ではなくJSに移動します。
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);
ただし、試してからベンチマークを実行せずにパフォーマンスを推測するのは難しい場合があるため、実際には、ベストショットを与えてそこから進んでください。