我有一个使用WebSQL构建的网站,用于离线存储。我使用Web Worker在后台运行一些数据库查询。
在最新版本的Chrome 39.0.2171.95中它不再起作用,似乎没有加载WebSQL API。我得到的错误是:
未捕获的ReferenceError:未定义openDatabase
的index.html
<html>
<head>
<script>
//opening the database works here
var db = openDatabase('db','1.0','db',10);
console.log(db);
//opening the database fails in web worker
var syncWorker = new Worker("worker.js");
syncWorker.postMessage(0);
</script>
</head>
<body></body>
</html>
worker.js
onmessage = function(evt) {
var db = openDatabase('db','1.0','db',10); //produces Uncaught ReferenceError: openDatabase is not defined
console.log(db);
};
但是如果Web工作者是动态加载的而不是文件加载的,那么它可以工作:
http://jsbin.com/warokilodi/12/edit?html,js,console,output
除了动态加载worker之外,还有解决方法/修复吗?
答案 0 :(得分:1)
看起来它不是一个错误,他们在Blink中故意删除了这个功能:
https://groups.google.com/a/chromium.org/forum/m/#!topic/Blink-dev/SYlD0YVUnQk