我一直在寻找一种方法来执行复杂的查询,例如 SQL 可以执行但完全是客户端。我知道我可以从服务器上执行 SQL 查询获得我想要的确切结果,我什至可以 AJAX 让它看起来很流畅。然而,出于可扩展性、性能和带宽的原因,我更愿意在所有客户端都这样做。
一些要求:
- 广泛的浏览器兼容性。任何可以运行 jQuery 的东西都可以。我实际上更喜欢它是一个 jQuery 插件。
- 可以对多个列进行排序。例如,按州字母顺序排列,并按字母顺序列出每个州内的所有城市。
- 可以过滤结果。例如,相当于“where state = 'CA' or 'NY' or 'TX'”。
- 必须完全在客户端工作,因此用户只需要下载大量数据一次,并且可以根据需要剪切数据,而无需不断从服务器获取数据,并且实际上能够在初始拉取后离线执行所有查询。
我在 stackoverflow 上环顾四周,发现了 jslinq,但它最后一次更新是在 2009 年,并且没有文档。我也不知道它是否可以执行更复杂的查询,例如在两个不同的列上排序或执行“and”或“or”过滤。
我认为这样的事情已经完成了。我知道 HTML5 是从这条路开始的,但后来遇到了障碍。我只需要基本查询,不需要连接或任何东西。有谁知道可以做到这一点的东西?谢谢。
编辑:我认为我应该包括一个用例来帮助澄清我在寻找什么。
例如,我有一份美国 5000 个最大城市的列表。每条记录都包括 Cityname、State 和 Population。我希望能够一次下载整个数据集并用它填充一个 JS 数组,然后,仅在客户端,能够运行如下查询并从结果记录中创建一个表。
- 加州十大城市
- 所有以“S”开头且人口超过 1,000,000 的城市。
- 加利福尼亚州、纽约州、佛罗里达州、得克萨斯州和伊利诺伊州的三个最大城市,按州字母顺序排列,然后按人口排列。即加利福尼亚,洛杉矶,3,792,621;加利福尼亚,圣地亚哥,1,307,402;加利福尼亚、圣何塞、945,942...等。
所有这些查询都可以通过 SQL 完成,但我不想继续来回访问服务器,我也希望允许离线使用。