`

SQLike – a small query engine

    博客分类:
  • ajax
阅读更多

插件官方地址:http://www.thomasfrank.se/sqlike.html

下载地址: http://www.thomasfrank.se/SQLike/SQLike_v_1_021.zip  (附件里也有一份)

文档地址: http://www.thomasfrank.se/SQLike

 

SqlLike是一个用javascript来实现类似于sql语法解析的插件, 可用于对象数组的查询. 在用于大量表示数据的网页上可以很方便的使用.

 

以下是原文转载:

SQLike is a small (10 kB) query engine for JavaScript and ActionScript. Its functionality and syntax is similar to that of SQL and it can be used to query arrays of objects or arrays of arrays.

 

 

Purpose Data structures in JavaScript and ActionScript are JSON :esque and sometimes deeply nested. When they are nested into XML-like structures a query language such as JSONPath (XPath for JSON) is a sound approach. But sometimes you might also use flat table-like structures. In those cases a more SQL-like approach can be more suited for searching, combining and updating data. The purpose of SQLike is to provide a tool for this approach that can be used on the clientside in all browsers (even when you do not have access to SQLite that is now getting to be part of some browser environments AIR, Safari etc.). SQLike is much slower than SQLite, but a handy alternative for small amounts of data.

SQLike is kind of like SQL SQLike supports language elements like SELECT, SELECT DISTINCT, WHERE, GROUP BY, ORDER BY, LIMIT, HAVING, UNION, JOINS (a whole bunch of them), INTERSECT, EXCEPT, UPDATE and INSERT INTO. You will also find aggregate functions like COUNT, SUM, MIN, MAX and AVG. So if you're familiar with SQL you will not be lost, however you will have to adopt to SQLike syntax. Because...

SQLike is not SQL SQLike uses SQL-like syntax but not SQL syntax. In SQLike you write your queries as literal objects and the where and set keywords takes JS/AS-functions as arguments. Furthermore you can include JS/AS-functions in your select statements as well. Another difference is that you don't create or alter tables. Since they are identical to arrays there is no need they are easily created outside SQLike . Furthermore you don't index tables. This might be possible to add to the engine, but I'm not sure if the speed benefits would be huge or how to code an effective index engine as long as the where statement is allowed to be a JS/AS-function, something that I truly like about the API.

The same code base in JavaScript and ActionScript SQLike consists of ECMA-262 code that is identical in JavaScript, ActionScript 2 and ActionScript 3. The only difference between the languages is the opening lines defining SQLike as an object in JavaScript, a class in AS2 and a class inside a package in AS3. All code inside the function q is identical. It has been compressed using the YUI Compressor . The uncompressed version of SQLike is also included in the zip file if you want to play around with it and/or help me develop SQLike further.

Speed is JavaScript faster the ActionScript 3? It's rather interesting to compare the query speed between different browsers/JavaScript engines, ActionScript 2 and ActionScript 3 (Flash player 10). In my case (running Windows on a dual core laptop) JavaScript is fastest in Google Chrome 5 (more than twice as fast as AS3), still faster than AS3 in Safari 4. Also Opera 10.5 beats AS3 most of the time. Firefox 3.6 is more or less on par with AS3, and IE8 is sloooow - but slightly faster than AS2. The JavaScript engine in Chrome V8 is amazingly strong. Makes you wonder what Adobe gained on all the "staticness" they imposed on ECMA-script in the Tamarin engine/AS3. Obviously it wasn't necessary for speed...

分享到:
评论

相关推荐

    SQLike加密工具

    SQLike加密工具是一款专为微型数据库SQLike设计的安全防护软件,其主要目的是为了防止未经授权的用户使用SQLike数据库管理工具直接访问和操作数据库内容。在信息化时代,数据安全至关重要,尤其是对于那些包含敏感...

    sqlike_32_64DLL

    微型SQLike数据库的引用库,32位和64位类库.解决"未能加载文件或程序集System.Data.SQLite, Version=1.0.60.0, XXXXXXXXX"或它的某一个依赖项。试图加载格式不正确的程序。

    android传感计步器demo

    本项目"android传感计步器demo"正是这样一个实例,它展示了如何利用Android系统提供的Sensor API来获取设备的运动数据,并通过SqLike数据库来存储和管理这些信息。 首先,我们来详细了解一下Sensor API。在Android...

    基于OpenCV的人脸识别小程序.zip

    【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    精选毕设项目-宅男社区.zip

    精选毕设项目-宅男社区

    精选毕设项目-扫描条形码.zip

    精选毕设项目-扫描条形码

    配网两阶段鲁棒优化调度模型 关键词:两阶段鲁棒优化,CCG算法,储能 仿真算例采用33节点,采用matlab+yalmip+cplex编写,两阶段模型采用CCG算法求解 模型中一阶段变量主要包括01

    配网两阶段鲁棒优化调度模型 关键词:两阶段鲁棒优化,CCG算法,储能 仿真算例采用33节点,采用matlab+yalmip+cplex编写,两阶段模型采用CCG算法求解。 模型中一阶段变量主要包括01变量和无功优化变量,核心变量主要存在于二阶段,因此在叠加二阶段变量优化过程中更容易得到最优解,所以有限次迭代即得到收敛的结果。 模型以网损为目标,包括功率平衡、网络潮流、电压电流、蓄电池出力以及无功设备出力等约束。 复现《两阶段鲁棒优化的主动配电网动态无功优化》-熊壮壮,具体内容可自行下载了解。

    comsol光栅仿真 计算复合波导光栅准BIC增强古斯汉森位移

    comsol光栅仿真 计算复合波导光栅准BIC增强古斯汉森位移

    精选毕设项目-车源宝寻车广场.zip

    精选毕设项目-车源宝寻车广场

    数字农业产业项目整体解决方案.pdf

    数字农业产业项目整体解决方案

    精选毕设项目-幸运大抽奖.zip

    精选毕设项目-幸运大抽奖

    SRS构型七自由度冗余机械臂运动学建模全套matlab代码 代码主要功能: 1. 基于臂角参数化方法求解机械臂在给定末端位姿和臂角下的关节角度; 2. 求解机械臂在给定末端位姿下的有效臂角范围

    SRS构型七自由度冗余机械臂运动学建模全套matlab代码 代码主要功能: [1]. 基于臂角参数化方法求解机械臂在给定末端位姿和臂角下的关节角度; [2]. 求解机械臂在给定末端位姿下的有效臂角范围,有效即在该区间内机械臂关节角度不会超出关节限位; [3]. 以避关节限位为目标在有效臂角区间内进行最优臂角的选取,进而获取机械臂在给定末端位姿下的最优关节角度。 购前须知: 1. 代码均为个人手写,主要包含运动学建模全套代码; 2. 代码已经包含必要的注释; 包含原理推导文档,不包含绘图脚本以及urdf;

    精选毕设项目-微信小程序天气源码.zip

    精选毕设项目-微信小程序天气源码

    bmjebm-29-6.pdf

    bmjebm-29-6.pdf

    chromedriver-linux64_123.0.6273.0.zip

    chromedriver-linux64_123.0.6273.0

    精选毕设项目-腾讯云小程序一站式解决方案.zip

    精选毕设项目-腾讯云小程序一站式解决方案

    精选毕设项目-仿饿了么.zip

    精选毕设项目-仿饿了么

    学生宿舍管理系统的设计与开发-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip

    Spring Boot是Spring框架的一个模块,它简化了基于Spring应用程序的创建和部署过程。Spring Boot提供了快速启动Spring应用程序的能力,通过自动配置、微服务支持和独立运行的特性,使得开发者能够专注于业务逻辑,而不是配置细节。Spring Boot的核心思想是约定优于配置,它通过自动配置机制,根据项目中添加的依赖自动配置Spring应用。这大大减少了配置文件的编写,提高了开发效率。Spring Boot还支持嵌入式服务器,如Tomcat、Jetty和Undertow,使得开发者无需部署WAR文件到外部服务器即可运行Spring应用。 Java是一种广泛使用的高级编程语言,由Sun Microsystems公司(现为Oracle公司的一部分)在1995年首次发布。Java以其“编写一次,到处运行”(WORA)的特性而闻名,这一特性得益于Java虚拟机(JVM)的使用,它允许Java程序在任何安装了相应JVM的平台上运行,而无需重新编译。Java语言设计之初就是为了跨平台,同时具备面向对象、并发、安全和健壮性等特点。 Java语言广泛应用于企业级应用、移动应用、桌面应用、游戏开发、云计算和物联网等领域。它的语法结构清晰,易于学习和使用,同时提供了丰富的API库,支持多种编程范式,包括面向对象、命令式、函数式和并发编程。Java的强类型系统和自动内存管理减少了程序错误和内存泄漏的风险。随着Java的不断更新和发展,它已经成为一个成熟的生态系统,拥有庞大的开发者社区和持续的技术创新。Java 8引入了Lambda表达式,进一步简化了并发编程和函数式编程的实现。Java 9及以后的版本继续在模块化、性能和安全性方面进行改进,确保Java语言能够适应不断变化的技术需求和市场趋势。 MySQL是一个关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)来管理和存储数据。MySQL由瑞典MySQL AB公司开发,并于2008年被Sun Microsystems收购,随后在2010年,Oracle公司收购了Sun Microsystems,从而获得了MySQL的所有权。MySQL以其高性能、可靠性和易用性而闻名,它提供了多种特性来满足不同规模应用程序的需求。作为一个开源解决方案,MySQL拥有一个活跃的社区,不断为其发展和改进做出贡献。它的多线程功能允许同时处理多个查询,而其优化器则可以高效地执行复杂的查询操作。 随着互联网和Web应用的快速发展,MySQL已成为许多开发者和公司的首选数据库之一。它的可扩展性和灵活性使其能够处理从小规模应用到大规模企业级应用的各种需求。通过各种存储引擎,MySQL能够适应不同的数据存储和检索需求,从而为用户提供了高度的定制性和性能优化的可能性。

    精选毕设项目-体育新闻赛事数据.zip

    精选毕设项目-体育新闻赛事数据

Global site tag (gtag.js) - Google Analytics