0

我有一个 web 应用程序,它依赖于 html5 离线存储功能,因此用户可以在没有互联网连接的情况下访问它。该应用程序本质上只是提供 html 页面和一点点 css 和 javascript。

我正在尝试添加在这些页面上搜索关键字的文本的功能,但是由于不能保证应用程序可以访问服务器,因此它需要能够在客户端执行这些搜索。

我的想法是我可以将可搜索的文本存储在浏览器的 web sql 数据库中,并通过 javascript 或浏览器的 sql api 执行搜索。我对执行此操作的最佳方法有几个问题:

1)我依稀记得一篇关于如何实现这样的东西的文章,可能来自airbnb?有人记得这样的文章吗?

2) 文本是 2,000,000+ 字,所以我假设 indexOf 在这个数据大小下会崩溃。正则表达式是否有可能存在?实施实际搜索有哪些选择?(库、算法等)如果我需要走这条路,有什么文章建议可以理解字符串搜索算法的权衡吗?

4

1 回答 1

1

好吧,我刚刚为您编写了一个快速基准测试,并惊讶地发现您可能会使用String.indexOf(). 每次搜索我得到大约 35 毫秒,也就是每秒大约 30 次搜索。

编辑: 更好的基准。似乎有某种初始化延迟,但看起来indexOf相当快。您可以使用基准测试,看看它是否适合您。

于 2013-06-13T04:33:52.430 回答