我有一个数组(实际上是来自alasql
github的数据库数据),我想在脚本中“写入”或“读取”时运行一个函数。
“书面”代表push
,pull
以及赋值运算符,如=
,
而“读取”代表直接访问数组值,如array
(整个数组)、array[0]
(数组的元素)等,以及读取属性,如array.length
实际上,我使用这些功能来访问localStorage
.
我已经阅读了这个 stackoverflow 问题,但我仍然没有自己的解决方案,因为我在这里有一些限制。
- 我不仅要监视,而且
push()
覆盖推送方法对我不起作用。=
- 该数组实际上是由 javascript 库创建的
alasql
,我不打算更改库代码,因为它可能是一项艰巨的任务,因此无法创建自定义的 observable 数组。 - 库直接访问数组作为SQL语句的存储SQL表的数据,所以不能使用代理。
- 我的脚本将
firefox
在至少 10 年前购买的运行 xp 的慢速计算机上运行,该计算机具有 < 1GB RAM 和单核 CPU 之类的硬件,实际上是 SQL 表的数组将具有 10000 个条目之类的条目,因此阵列是性能要求。如果我在 github 上使用像underscore-observe 这样的库,它依赖于每 250 毫秒扫描一次,那台愚蠢的计算机就会死机。 - 在 github 上使用smart-collection 。好吧,我实际上不知道那个答案和 github 上的自述文件在谈论什么,但我认为它不会起作用,因为我必须为它创建另一个数组(?)
- 使用github 自述文件上的localStorage引擎,很好,这可能是最初最好的,我试过了。但是当我发现它的一个错误阻碍了我的工作时,我决定离开它。
alasql
如果有人能给我一个关于如何做到这一点的解决方案,我会很高兴,因为到目前为止,这是我项目中的一个主要和大问题。
PS:我的项目是开发一个单一的 HTML 页面,该页面运行一个类似 POS 的系统,具有 SQL 的销售和借用功能,并且它将在一台没有互联网连接的愚蠢的旧电脑上运行。