2011-07-20 5 views
6

ローカルデータベースからサーバーにデータを同期するHTML5 + WebSQLを使用してアプリケーションを開発しました。JavaScriptからWebSQLデータベースを圧縮する方法

データが削除されると、sqliteデータベースファイルのサイズは変更されません。これには空のスペースが含まれていることがわかります。新しいデータが挿入されたときに空白が埋められますが、制限のためサイズをできるだけ小さくしたいと思います。

私は、sqliteのVACUUMコマンドでデータベースを圧縮して未使用領域を削除できることを知っていますが、JavaScriptからWebSQLデータベースを実行しようとすると「論理エラーまたはデータベースがありません」というエラーが表示されます。ブラウザの外部からコマンドを実行するとうまくいきます。

私の質問は以下のとおりです。

  1. は、VACUUMコマンドは、JavaScriptから何とか実行することはできますか?

  2. ブラウザはこれを自動的に実装し、最終的に呼び出されますか? (これに関するドキュメントは見つかりません)

ありがとうございました。

答えて

4

WebSQLの機能が停止されているため、バグ/機能要求は受け入れられませんでした。これと同じ問題は、Chromiumのバグと同じように存在します。たとえば、応答がありません。

最悪のは、あなたの二つの質問の真実であることが表示されます:

1:真空コマンドは、データベースに接続していないときに実行することができますので、それが唯一のコマンドラインから実行することができます。ブラウザやjavascriptで「データベースを切断してからVACUUMを実行する」コマンドはありません。

2:カウントしないでください。最大サイズ制限に達すると実行されることは明らかではなく、最大サイズ制限に達するずっと前から大きく減速していることに気づくでしょう。

多くの場合、プラグインまたはjavascriptコンテキスト外のコマンドを送信できる可能性があります。コマンド自体を実行する可能性があります...現在は推奨されていません。レガシーアプリケーションの場合、その機能を持たなければならない場合は、単純なwebpage/jsコンテキストの外で行う必要があります。

未来/現代のアプリケーションでは現在IndexedDBを使用しています。この質問は従来のアプリケーションに対してのみ回答されています。

関連する問題