Szi*_*rdD 5 sqlite html5 web-sql
我使用HTML5 + WebSQL开发了一个应用程序,它将数据从本地数据库同步到服务器.
删除数据时,sqlite数据库文件的大小保持不变.我知道这包含空的空间,并且在插入新数据时它将被填充但我希望由于限制而保持尽可能小的尺寸.
我知道sqlite中的VACUUM命令可以压缩数据库并删除未使用的空间,但是当我尝试从JavaScript在WebSQL数据库上运行它时它失败并显示错误"逻辑错误或缺少数据库".从浏览器外部运行命令工作正常.
我的问题是:
可以通过JavaScript以某种方式执行VACUUM命令吗?
浏览器是否自动实现并最终调用?(找不到任何关于此的文档)
谢谢你的帮助.
由于 WebSQL 的废弃/工作停止性质,错误/功能请求过去和将来都不会得到满足。例如,同样的问题作为 Chromium bug 存在,但没有响应。
看来你的两个问题中最糟糕的是:
1:因为vacuum命令只能在未连接数据库的情况下运行,所以只能从命令行运行。浏览器或 JavaScript 中似乎没有“断开数据库连接,然后运行 VACUUM”命令。
2:不要指望它。目前还不清楚它是否会在达到最大大小限制时运行,即使它确实运行,您也会在达到最大大小限制之前很久就注意到速度大幅下降。
最多你可能能够将命令发送到插件或 javascript 上下文之外的东西,它本身可以运行该命令......它现在已被弃用,所以它是一个有争议的点。对于遗留应用程序,如果您必须拥有该功能,则必须在简单的网页/js 上下文之外完成。
未来/现代应用程序现在使用 IndexedDB;仅针对遗留应用程序回答了这个问题。
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |