Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Sqlite 如何从JavaScript压缩WebSQL数据库_Sqlite_Html_Web Sql - Fatal编程技术网

Sqlite 如何从JavaScript压缩WebSQL数据库

Sqlite 如何从JavaScript压缩WebSQL数据库,sqlite,html,web-sql,Sqlite,Html,Web Sql,我使用HTML5+WebSQL开发了一个应用程序,可以将本地数据库中的数据同步到服务器上 删除数据时,sqlite数据库文件的大小保持不变。我知道这包含了空白,当插入新数据时会被填充,但由于限制,我希望保持尽可能小的大小 我知道sqlite中的VACUUM命令可以压缩数据库并删除未使用的空间,但是当我尝试从JavaScript在WebSQL数据库上运行它时,它失败了,错误为“logic error or missing database”。从浏览器外部运行命令可以正常工作 我的问题是: 真空命令

我使用HTML5+WebSQL开发了一个应用程序,可以将本地数据库中的数据同步到服务器上

删除数据时,sqlite数据库文件的大小保持不变。我知道这包含了空白,当插入新数据时会被填充,但由于限制,我希望保持尽可能小的大小

我知道sqlite中的VACUUM命令可以压缩数据库并删除未使用的空间,但是当我尝试从JavaScript在WebSQL数据库上运行它时,它失败了,错误为“logic error or missing database”。从浏览器外部运行命令可以正常工作

我的问题是:

  • 真空命令可以通过JavaScript以某种方式执行吗

  • 浏览器是否会自动实现这一点,最终是否会调用它?(找不到有关此的任何文档)


  • 感谢您的帮助。

    由于WebSQL的禁用/停止工作性质,错误/功能请求不会得到满足,也永远不会得到满足。例如,同样的问题也存在于Chromium bug中,没有响应

    在你的两个问题中,最糟糕的是:

    1:因为真空命令只能在未连接到数据库时运行,所以只能从命令行运行。在浏览器或javascript中似乎没有“断开数据库连接,然后运行真空”命令

    2:别指望了。现在还不清楚它是否会在达到最大尺寸限制时运行,即使如此,在达到最大尺寸限制之前,您也会注意到严重的减速

    最多您可以将命令发送到插件或javascript上下文之外的东西,这些东西本身就可以运行该命令……现在它已被弃用,因此这是一个没有实际意义的问题。对于遗留应用程序,如果必须具有该功能,则必须在简单网页/js上下文之外完成

    未来/现代应用程序现在使用IndexedDB;此问题仅针对遗留应用程序回答