相关疑难解决方法(0)

使用多个条件查询

我最近发现(遗憾的是)HTML5不再支持WebSQL,而且IndexedDB将替代它.

我想知道是否有任何方法可以查询或搜索IndexedDB的条目,方式与我如何使用SQL搜索满足多个条件的条目类似.

我已经看到我可以使用KeyRange的一个条件搜索IndexedDB.但是,我似乎无法找到任何方法来搜索两列或更多列数据,而无需从数据库中获取所有数据并使用for循环执行此操作.

我知道这是一个新功能,几乎没有在浏览器中实现,但我有一个项目,我正在开始,我正在研究我可以做的不同方式.

谢谢!

javascript indexeddb

32
推荐指数
2
解决办法
3万
查看次数

在IndexedDB中,有没有办法进行排序复合查询?

说一张桌子有,名字,身份证,年龄,性别,教育等.ID是关键,表格也是姓名,年龄和性别的索引.我需要所有25岁以上的男学生按名字排序.

这在mySQL中很简单:

    SELECT * FROM table WHERE age > 25 AND sex = "M" ORDER BY name
Run Code Online (Sandbox Code Playgroud)

IndexDB允许创建索引并根据该索引对查询进行排序.但它不允许多次查询,如年龄和性别.我发现了一个名为queryIndexedDB(https://github.com/philikon/queryIndexedDB)的小型库,它允许复合查询,但不提供排序结果.

那么有没有办法在使用IndexedDB时进行排序复合查询?

sqlite html5 web-applications client-side indexeddb

31
推荐指数
1
解决办法
1万
查看次数

在javascript中优化JSON查询性能

我有一个10MB的以下结构的JSON文件(10k条目):

{
entry_1: {
    description: "...",
    offset: "...",
    value: "...",
    fields: {
        field_1: {
            offset: "...",
            description: "...",
        },
        field_2: {
            offset: "...",
            description: "...",
        }   
    }
},
entry_2:
...
...
...
Run Code Online (Sandbox Code Playgroud)

}

我想实现一个自动完成输入字段,该字段将在搜索多个属性时尽快从此文件中获取建议.例如,查找包含某些子字符串的所有条目名称,字段名称和描述.

方法1:

我试图将嵌套展平成一个字符串数组:

"entry_1|descrption|offset|value|field1|offset|description",
"entry_1|descrption|offset|value|field2|offset|description",
"entry2|..."
Run Code Online (Sandbox Code Playgroud)

并执行不区分大小写的部分字符串匹配,查询耗时约900ms.

方法2

我尝试了基于Xpath的JSON查询(使用defiant.js).

  var snapshot = Defiant.getSnapshot(DATA);
  found = JSON.search(snapshot, '//*[contains(fields, "substring")]');
Run Code Online (Sandbox Code Playgroud)

查询耗时约600毫秒(仅适用于单个属性fields).

是否有其他选项可以让我达到100毫秒?我控制文件格式,所以我可以把它变成XML或任何其他格式,唯一的要求是速度.

javascript xml json query-performance

6
推荐指数
1
解决办法
1284
查看次数