Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用WebSQL web IndexedDB的LocalFower可用_Javascript_Angularjs_Google Chrome_Indexeddb_Localforage - Fatal编程技术网

Javascript 使用WebSQL web IndexedDB的LocalFower可用

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)

我正在用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);
根据,如果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在技术上是正确的。