HTML5 WebサイトのSqlite実装に関するいくつかの質問があります。HTML5 SQLite Dbに関する質問
まず、openDatabaseSyncメソッドを呼び出す同期データベースを使用しようとしていますが、動作していないようです...誰かが既にそれを使用していました。
また、私はデータベースクエリで結果の戻り値を処理しようとしていますが、少し苦労しています。私はこのように、本の配列を返すために、私の機能が欲しい:明らかに
function searchByKeywordId(kw_id, element) {
cleanSearch();
element.innerHTML = "No result...";
var books = new Array();
db.transaction(function (tx) {
tx.executeSql("SELECT b.BK_TITLE,b.BK_URL, b.BK_THUMBNAIL_URL FROM KEYWORDS k INNER JOIN CATALOG_ITEMS c on k.KW_ID = c.KW_ID INNER JOIN BOOKS b on c.BK_ID = b.BK_ID WHERE k.KW_ID = ? GROUP BY b.BK_TITLE,b.BK_URL",[kw_id], function (tx, results) {
if (results.rows.length > 0) {
var html = "";
for (var i = 0; i < results.rows.length; i++) {
var bookId = results.rows.item(i).BK_ID;
var bookUrl = results.rows.item(i).BK_URL;
var bookTitle = results.rows.item(i).BK_TITLE;
var bookThumbnailUrl = results.rows.item(i).BK_THUMBNAIL_URL;
var book = new Book(bookId,bookTitle,bookUrl,bookThumbnailUrl);
books.push(book);
/*html += "<div class='x_container' id='calibre:book:" + bookId + "'>";
html += "<div class='cover'>";
html += "</div></div>";*/
html += "<a href='" + bookUrl + "' title=\"" + bookTitle + "\" target='_new'><img src='" + bookThumbnailUrl + "'></a> ";
}
//html += "</div>";
element.innerHTML = html;
}
});
});
return books; }
、コールバックメソッドの中本を追加すると、動作しません...私はそれを達成できる方法を参照していますか?だから私は自分のデータベースメソッドから文書に書き込む必要はありません...
ありがとう!
は、Web-SQLタグが追加されました - これはHTML5の一部ではないことに注意してください。 – Nickolay
同期バージョンのメソッドは、仕様に記載されていても広くサポートされていないことを理解します。私はそれらを自分でテストし、例としてChrome v16.0.912.77は同期APIをサポートしていません(TypeError: "オブジェクト[オブジェクトDOMWindow]にはメソッド 'openDatabaseSync'がありません)。あなたの2番目の質問については、 "executeSql"メソッドが生成されていないとエラーが発生していませんか?エラーコールバックを追加して、エラーがスローされたかどうかを確認します。また、Chromeの開発者ツールの[リソース]タブで直接コマンドを実行して、コマンドが正しいことを確認することもできます。 –
@Gabobcat openDatabaseSyncはChromeには存在しますが、使用するにはWebWorkersを使用する必要があります...はい、私のクエリは正常に動作していると確信しています – Farid