私は数年遅れていますが、直接回答されていないOPの質問に回答し、役立つ提案を追加すると役立つと思いました:)。
Chromeが機能バージョンでWebSQLを引き続きサポートすることをどのように確認できますか?
私の知る限り、特定のブラウザーベンダーがテクノロジーまたはAPIのサポートをいつ終了するかを決定する方法はありません。ただし、ベンダーは、開発者に通知する前に、開発者に通知するのが通例です(数か月または数年程度)。
webSQLを使用する必要がありますか?
要するに、違います。Deni Spasovskiの回答以来、WebSQLの非推奨に関するすべてのことは今でも続いています。一方、IndexedDBは、すべての主要なブラウザベンダーのサポートを享受しています。だから後者と一緒に行きなさい。
ただし、2つのデータベース間の決定は、必ずしも行わなければならない決定ではないことを指摘しておく必要があります。クライアントマシンで利用可能なデータベースを利用するライブラリを選択(または作成)するだけです。
BakedGoodsは、ここですでに提案されているライブラリとはいくつかの点で異なります。最も適切なのは、使用するストレージタイプを明示的に指定できるようにすることで、開発者が意思決定プロセスに他の要素(パフォーマンス特性など)を導入できるようにすることです。
これを使用すると、サポートされているデータベースタイプのいずれかでストレージ操作を実行することが問題になります...
...両方のデータベースタイプに適切な操作オプションと同等の構成を指定します。
//If the operation is a set(), and the referenced structures
//don't exist, they will be created automatically.
var webSQLOptionsObj = {
databaseName: "Example_DB",
databaseDisplayName: "Example DB",
databaseVersion: "",
estimatedDatabaseSize: 1024 * 1024,
tableData: {
name: "Main",
keyColumnName: "lastName",
columnDefinitions: "(lastName TEXT PRIMARY KEY, firstName TEXT)"
},
tableIndexDataArray: [name: "First_Name_Index", columnNames: "(firstName)"]
};
var indexedDBOptionsObj = {
databaseName: "Example_DB",
databaseVersion: 1,
objectStoreData: {
name: "Main",
keyPath: lastName,
autoIncrement: false
},
objectStoreIndexDataArray: [
{name: "First_Name_Index", keyPath: "firstName", unique: false, multiEntry: false}
],
};
var optionsObj = {
conductDisjointly: false,
webSQL: webSQLOptionsObj,
indexedDB: indexedDBOptionsObj
};
...そして操作を行う:
bakedGoods.set({
data: [
{value: {lastName: "Obama", firstName: "Barack"}},
{value: {lastName: "Biden", firstName: "Joe"}}
],
storageTypes: ["indexedDB", "webSQL"],
options: optionsObj,
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
そのシンプルなインターフェイスと比類のないストレージ施設のサポートは、一部のストレージ施設固有の構成のサポートが不足しているという犠牲を払って提供されます。たとえば、複数列の主キーを持つWebSQLテーブルでのストレージ操作の実行はサポートされていません。
したがって、これらのタイプの機能を多用する場合は、他の場所を探すことをお勧めします。
ああ、そして完全な透明性のために、BakedGoodsは本当にあなたによって維持されています:)。