我正在编写一个基于浏览器(Javascript 和 jQuery)的语言分析工具,它从 HTML 中提取文本,然后提取句子、单词等语言单位。
为了导入文本,PHP 后端会抓取给定的 URL 并清理生成的 HTML。然后将该 HTML 插入到div#container
界面中的 a 中,如下所示:
当源 HTML 页面很长时,我遇到了一些困难。将这样的页面读取并插入到界面DOM
中似乎不会引起问题(尽管需要一段时间)。
但是如果页面很长,对蜘蛛内容运行词频算法会非常慢。例如,如果页面接近 100K 字,它几乎会让事情陷入停顿。
所以,我看到了一些选择:
- 更改 PHP 蜘蛛,使其截断源文档或将其细分为多个文档
- 更改词频算法,使其不那么精确,并对词分布进行采样而不是完整记录
- 试试这个新奇的 Web Worker,看看我是否可以跨多个后台进程分配计算。
在我看来,(3) 只是 Web Workers 旨在做的事情。我想象将蜘蛛内容分成块,然后为每个块分配一个 Web Worker。可以从 Web Worker 中返回每个 chunk 的词频概况,然后汇总并渲染到图表中。
在我尝试这个之前,我希望我能从这里其他可能曾经使用过 Web Workers 的人那里得到一个健全的检查。div#container
一方面,我想知道是否有效地拆分div#container
.