一尘不染

如何在客户端浏览器中执行类似SQL的查询?

sql

我一直在寻找一种方法来执行复杂的查询,例如SQL可以执行但完全在客户端执行。我知道我可以从服务器上执行SQL查询来获得所需的准确结果,甚至可以AJAX使其看起来很平滑。但是出于可伸缩性,性能和带宽的原因,我宁愿在所有客户端执行此操作。

一些要求:

  • 广泛的浏览器兼容性。任何可以运行jQuery的工具都可以。我实际上更希望它是一个jQuery插件。
  • 可以对多个列进行排序。例如,按字母顺序按州排序,并按字母顺序列出每个州内的所有城市。
  • 可以过滤结果。例如,等效于“ where state =’CA’或’NY’或’TX’”。
  • 必须完全在客户端运行,因此用户只需要下载一次大数据集就可以剪切数据,但是他们希望在不不断从服务器获取数据的情况下进行操作,实际上可以在初始拉动之后脱机执行所有查询。

我到处查看了stackoverflow,发现了jslinq,但它的最新更新时间为2009年,没有文档。我也无法确定它是否可以执行更复杂的查询,例如在两个不同的列上进行排序或执行“与”或“或”过滤。

我认为这样的事情已经做完了。我知道HTML5是沿着这条道路开始的,但后来遇到了障碍。我只需要基本查询,没有联接或任何东西。有谁知道可以做到这一点的东西?谢谢。

编辑:我认为我应该包括一个用例,以帮助阐明我在寻找什么。

例如,我列出了美国5000个最大的城市。每个记录包括城市名称,州和人口。我希望能够一次下载整个数据集并用它填充一个JS数组,然后仅在客户端上就可以运行如下查询,并根据结果记录创建表。

  • 加州十大城市
  • 以“ S”开头的所有1,000,000或以上的城市。
  • 加利福尼亚,纽约,佛罗里达州,德克萨斯州和伊利诺伊州的三个最大城市,并按州和人口先后的字母顺序排列。即加利福尼亚州洛杉矶市3,792,621;加利福尼亚,圣地亚哥,1,307,402;加利福尼亚州,圣何塞,945942 …等。

通过SQL进行所有这些查询都是微不足道的,但是我不想一直往返于服务器,并且我也希望允许脱机使用。


阅读 160

收藏
2021-03-17

共1个答案

一尘不染

看看http://linqjs.codeplex.com/

它很容易满足您的所有要求。

2021-03-17