Browser 使用哪个浏览器SQL数据库?

Browser 使用哪个浏览器SQL数据库?,browser,indexeddb,web-sql,Browser,Indexeddb,Web Sql,好的,所以我需要为iOS和Android移动浏览器实现一个相当大的本地数据库(~30MB)。我正在研究这些选项,看起来WebSQL(我想要使用的选项)正在被主动放弃。此外,IndexedSQL似乎不完全受支持 对于本地浏览器数据库,您有什么建议?谢谢 我认为除了使用indexeddb,您没有其他选择。WebSQL已被弃用,localstorage太小,性能无法满足需要 我编写了一个实现类似linq接口的库。通过使用这些方法,您可以轻松地查询数据库。例如: linq2indexeddb.from(

好的,所以我需要为iOS和Android移动浏览器实现一个相当大的本地数据库(~30MB)。我正在研究这些选项,看起来WebSQL(我想要使用的选项)正在被主动放弃。此外,IndexedSQL似乎不完全受支持


对于本地浏览器数据库,您有什么建议?谢谢

我认为除了使用indexeddb,您没有其他选择。WebSQL已被弃用,localstorage太小,性能无法满足需要

我编写了一个实现类似linq接口的库。通过使用这些方法,您可以轻松地查询数据库。例如:

linq2indexeddb.from("store").where("field").equals("value").select()
因为IndexedEDB是异步的,所以您将得到一个承诺


您可以在

找到我的库。我认为您除了使用indexeddb之外别无选择。WebSQL已被弃用,localstorage太小,性能无法满足需要

我编写了一个实现类似linq接口的库。通过使用这些方法,您可以轻松地查询数据库。例如:

linq2indexeddb.from("store").where("field").equals("value").select()
因为IndexedEDB是异步的,所以您将得到一个承诺


您可以在

找到我的库。我认为您除了使用indexeddb之外别无选择。WebSQL已被弃用,localstorage太小,性能无法满足需要

我编写了一个实现类似linq接口的库。通过使用这些方法,您可以轻松地查询数据库。例如:

linq2indexeddb.from("store").where("field").equals("value").select()
因为IndexedEDB是异步的,所以您将得到一个承诺


您可以在

找到我的库。我认为您除了使用indexeddb之外别无选择。WebSQL已被弃用,localstorage太小,性能无法满足需要

我编写了一个实现类似linq接口的库。通过使用这些方法,您可以轻松地查询数据库。例如:

linq2indexeddb.from("store").where("field").equals("value").select()
因为IndexedEDB是异步的,所以您将得到一个承诺

您可以使用(WebSQL的polyfill)在IndexedDB中找到我的库,确保外观满足您的要求。但请注意,IOS设备最多允许50MB的存储空间

我已经研究过与您类似的需求,这种组合在所有现代浏览器中都有效

IndexedDB使用(WebSQL的polyfill),确保外观满足您的要求。但请注意,IOS设备最多允许50MB的存储空间

我已经研究过与您类似的需求,这种组合在所有现代浏览器中都有效

IndexedDB使用(WebSQL的polyfill),确保外观满足您的要求。但请注意,IOS设备最多允许50MB的存储空间

我已经研究过与您类似的需求,这种组合在所有现代浏览器中都有效

IndexedDB使用(WebSQL的polyfill),确保外观满足您的要求。但请注意,IOS设备最多允许50MB的存储空间


我已经研究过与您类似的需求,这种组合在所有现代浏览器中都有效

我将在2016年(在你提出这个问题后2年)回答这个问题,以及关于这个问题的所有问题。另一方面,IndexedDB

现在应该说明“IndexedSQL”既不是IndexedDB的替代名称,也不是任何其他现有客户端数据库的名称:)。指出这一点似乎有点迂腐,但事实并非如此:IndexedDB是一个非关系文档存储,因此不支持SQL

不管你怎么称呼它,IndexedDB是目前W3C标准轨道上唯一的数据库,因此对于任何负责选择客户端数据库的人来说,它是唯一经得起未来考验的选项

然而,正如GemK所暗示的,这样的决定并不是必须做出的;您可以简单地选择(或创建)一个库,该库利用客户机上可用的数据库

在几个方面不同于这里已经建议的这些库;最恰当的是,它允许显式指定要使用的存储类型,从而允许开发人员在决策过程中引入其他因素(如性能特征)

有了它,在支持的任何数据库类型中执行存储操作都是一个简单的问题

。。。为这两种数据库类型指定适当的操作选项和等效配置:

//If the operation is a set(), and the referenced structures 
//don't exist, they will be created automatically.

var webSQLOptionsObj = {
    databaseName: "Example_DB",
    databaseDisplayName: "Example DB",
    databaseVersion: "",
    estimatedDatabaseSize: 1024 * 1024,
    tableData: {
        name: "Main",
        keyColumnName: "lastName",
        columnDefinitions: "(lastName TEXT PRIMARY KEY, firstName TEXT)"
    }, 
    tableIndexDataArray: [name: "First_Name_Index", columnNames: "(firstName)"]
};

var indexedDBOptionsObj = {
    databaseName: "Example_DB",
    databaseVersion: 1,
    objectStoreData: {
        name: "Main",
        keyPath: lastName,
        autoIncrement: false
    },
    objectStoreIndexDataArray: [
        {name: "First_Name_Index", keyPath: "firstName", unique: false, multiEntry: false}
    ],
};

var optionsObj = {
    conductDisjointly: false, 
    webSQL: webSQLOptionsObj, 
    indexedDB: indexedDBOptionsObj
};
。。。以及进行该项行动:

bakedGoods.set({
    data: [
        {value: {lastName: "Obama", firstName: "Barack"}}, 
        {value: {lastName: "Biden", firstName: "Joe"}}
    ],
    storageTypes: ["indexedDB", "webSQL"],
    options: optionsObj,
    complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
其简单的界面和无与伦比的存储设施支持是以缺少对某些存储设施特定配置的支持为代价的。例如,它不支持在具有多列主键的WebSQL表中执行存储操作

因此,如果您大量使用这些类型的功能,您可能会想去别处看看


哦,为了完全透明,BakedGoods由您维护:)。

我将在2016年(在您提出这个问题后2年)回答这个问题,以及与此相关的所有问题。另一方面,IndexedDB

现在应该说明“IndexedSQL”既不是IndexedDB的替代名称,也不是任何其他现有客户端数据库的名称:)。指出这一点似乎有点迂腐,但事实并非如此:IndexedDB是一个非关系文档存储,因此不支持SQL

不管你怎么称呼它,IndexedDB是目前W3C标准轨道上唯一的数据库,因此对于任何负责选择客户端数据库的人来说,它是唯一经得起未来考验的选项

然而,正如GemK所暗示的,这样的决定并不是必须做出的;您可以简单地选择(或创建)一个库,该库利用客户机上可用的数据库

在几个方面不同于这里已经建议的这些库;最恰当的是,它允许显式指定要使用的存储类型,从而