Javascript 使用WebSQL web IndexedDB的LocalFower可用
我正在用Ionic框架构建一个Cordova应用程序。我正在使用作为应用程序持久存储的本地数据库 在开发过程中,我在Windows10上使用Google Chrome 45.0.2454.85 m测试我的应用程序。angular LocalFough版本为1.2.3,LocalFough版本为1.2.4 我可以设置和检索数据,没有问题。要设置我正在使用的数据,请执行以下操作:Javascript 使用WebSQL web IndexedDB的LocalFower可用,javascript,angularjs,google-chrome,indexeddb,localforage,Javascript,Angularjs,Google Chrome,Indexeddb,Localforage,我正在用Ionic框架构建一个Cordova应用程序。我正在使用作为应用程序持久存储的本地数据库 在开发过程中,我在Windows10上使用Google Chrome 45.0.2454.85 m测试我的应用程序。angular LocalFough版本为1.2.3,LocalFough版本为1.2.4 我可以设置和检索数据,没有问题。要设置我正在使用的数据,请执行以下操作: $localForage.setItem(myKey, myData).then(myCallbackFunction)
$localForage.setItem(myKey, myData).then(myCallbackFunction);
根据,如果IndexedDB可用,LocalFower应该使用它,对于不可用的浏览器,应该使用WebSQL。通过查看Chrome开发者工具中的资源,我可以看出它正在WebSQL中存储我的数据
如果我将此代码放入控制器,我会收到一条消息,说明IndexedDB可用:
if (!window.indexedDB) {
window.alert("Your browser doesn't support a stable version of IndexedDB. Such and such feature will not be available.");
} else {
window.alert("IndexedDB available.");
}
我的问题是,当我有IndexedDB可用时,为什么它在Chrome中使用WebSQL?我的猜测是WebSQL被视为首选,因为它比IndexedDB api存在的时间更长,Chrome比IndexedDB更早推出WebSQL。由于chrome仍然支持websql,它将websql置于indexeddb之前。问题实际上相当棘手 TLDR;苹果的UIWebView不支持indexedDB。关闭Chrome的iOS模拟器以查看indexedDB是否正常工作 我假设你正在用Chrome开发工具模拟iPhone。实际上,这种欺骗非常有效,因为如果您将
localfow
配置为独占使用indexedDB,它现在将发出错误
如果你想有一个极度厌倦的时刻,并看到indexedDB的行动。。。关闭模拟,以便使用Chrome自己的用户代理。那就行了
资料来源:我不得不自己处理这些废话。这是一次非常糟糕的开发者体验。哈。如果设置的驱动程序是localfough.indexedbc,可能需要检查您的localfough配置。检查他们如何测试IndexedDB的支持,这不仅仅是window.IndexedDB。为答复干杯。但是,在代码中看不到任何会使其无法在Chrome中工作的内容…好吧,LocalFow默认优先级为IndexedDB,请尝试回退到websql,或回退到localStorage。否。该OP很可能是在使用Chrome的Devtools欺骗Mobile Safari。因此,尽管他设置了驱动程序优先级(
localfough.setDriver()
),但返回WebSQL在技术上是正确的。