html - 我可以制作一个 HTML5 可更新数据库来进行本地搜索吗?

标签 html node.js search indexeddb web-sql

我正在创建一个非常注重网站内部索引搜索的网站。问题在于查询,因为生产服务器非常便宜。我认为从 Node.js 而不是 PHP 开始进行开发可能是个好主意。但问题还远在前方。

我想将网站数据库的部分(名称、姓氏、标签、URL)推送到客户端浏览器并在本地进行搜索,每次有新条目时推送实时更新数据库由用户添加,并在大约 24 小时后重新下载所有内容。这样服务器就不会做太多工作,将结果放入客户端,只推送新条目或数据库。

我可以这样做吗?我需要什么?我考虑过使用 IndexedDB 并为 WebSQL 浏览器添加一个 polyfill,但我不知道这些技术是否可以实现我今天所要求的。

最佳答案

IndexedDB 是完成这项工作的完美工具,假设兼容性适合您的客户群。虽然 WebSQL 将是一个令人羡慕的替代方案,但要知道,无论出于何种意图和目的,该规范都已“死亡”并且不会进一步开发。

IDB 是一个“索引”JavaScript 对象存储,因此您可以在对象属性上添加索引并在它们之间添加“光标”,而无需使用 localStorage 之类的尝试执行此操作带来巨大的性能开销。例如,假设您有一个客户列表。您可以添加客户对象 { 'name': 'blah', 'surname': 'McBlaherson', 'tags': [ 1, 2, 3] },添加一些索引并使用 IDB 来,例如,按姓氏返回所有客户。

您所描述的最大挑战是处理客户端-服务器模型的“同步”方面。假设用户在浏览器和手机上打开该网站。如何合并数据存储?这听起来很简单,但我向你保证事实并非如此(这就是为什么 git 和其他版本控制系统如此神奇的原因)。

关于html - 我可以制作一个 HTML5 可更新数据库来进行本地搜索吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585855/

相关文章:

html bootstrap 图像标题不遵循标题大小

html - 如何修复整体样式表触发的IE绝对定位CSS渲染错误?

javascript - Three.js场景串化失败

javascript - 将属性添加到 Node module.exports 对象还是完全替换该对象更可取?

search - 在iPhone中标记CALayers

search - 为什么我的网站元描述标签在 Google 搜索中没有更新?

html - 我怎样才能在中心得到这个菜单栏

html - 在移动设备上触摸屏幕时标记所有网页

javascript - 我如何在nodejs中触发 "System Bell"

java - 在进行实际搜索之前计算行数