使用WebSQL的Web应用程序(在iOS(Safari或WebView)上使用的HTML5应用程序)有时无法按预期工作。简而言之,应用程序的工作:用户需要在看到他可以打开的旅行列表之前在汽车上注册。由于应用程序还需要脱机工作,因此它使用的API可以在WebSQL和后端服务器之间同步数据。
注册到汽车后,文档将以时间戳保存在本地WebSQL数据库中。将文档成功发送到服务器后,时间戳将被删除。
有时,文档最初成功保存,但之后无法更新。也无法从WebSQL数据库中的服务器保存新文档。
控制台会记录以下错误:
unable to commit transaction (5 database is locked)
显然在某个地方,WebSQL数据库被锁定了。仍然可以阅读,但是创建和删除文档是锁定的。
使用应用程序时并不总是这样,但是当它发生时,它真的很烦人。如何防止这种锁定?如何释放锁定以便用户可以继续使用该应用程序而无需重新打开应用程序?