【问题标题】:What's a fast way to collect most-used words on a page?什么是收集页面上最常用词的快速方法?
【发布时间】:2013-03-24 00:07:26
【问题描述】:

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

我应该只扫描 DOM 中的文本节点以提高速度吗?不太确定如何处理。

【问题讨论】:

标签: javascript dom keyword


【解决方案1】:

您可能最好先做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);

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

【讨论】:

  • 你必须在 Firefox 中使用.textContent
  • @FelixKling 好电话,我太习惯 Chrome 了:P
  • 这样的缺点是单词可以在textContent(和innerText,取决于浏览器)中组合。例如,对于以下 HTML:"&lt;div&gt;&lt;p&gt;One two&lt;/p&gt;&lt;p&gt;Three four&lt;/p&gt;&lt;/div&gt;"&lt;div&gt; 元素具有 texContent“一二三四”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多