Я пытаюсь создать очень простую функциональность хранения html5, и я написал следующий код, и он работает.
JS:
function initDatabase() {
try {
alert("Hi");
if (!window.openDatabase) {
alert('Databases are not supported in this browser.');
} else {
var shortName = 'SOMEDB';
var version = '1.0';
var displayName = 'SOMEDB';
var maxSize = 10000; // bytes
SOMEDB = openDatabase(shortName, version, displayName, maxSize);
createTables();
//selectAll();
}
} catch(e) {
if (e == 2) {
// Version number mismatch.
console.log("Invalid database version.");
} else {
console.log("Unknown error "+e+".");
}
return;
}
}
function createTables(){
alert("Create table");
SOMEDB.transaction(
function (transaction) {
transaction.executeSql('CREATE TABLE IF NOT EXISTS page_settings(id INTEGER NOT NULL PRIMARY KEY, settingname TEXT NOT NULL,value TEXT NOT NULL);', [], nullDataHandler, errorHandler);
}
);
prePopulate();
}
function prePopulate(){
alert("In pre populating");
SOMEDB.transaction(
function (transaction) {
//Optional Starter Data when page is initialized
var setting1 = ['1','setting1','setting2'];
transaction.executeSql("INSERT INTO page_settings(id, settingname, value) VALUES ('1', 'bluetooth', 'on');",[],nullDataHandler, errorHandler);
transaction.executeSql("commit;");
}
);
}
function errorHandler(transaction, error){
if (error.code==1){
// DB Table already exists
} else {
// Error is a human-readable string.
console.log('Oops. Error was '+error.message+' (Code '+error.code+')');
}
return false;
}
function nullDataHandler(){
console.log("SQL Query Succeeded");
}
И HTML выглядит так:1006 *
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="db.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<a href="#" onClick="initDatabase();">aa</a>
</body>
</html>
Этот код работает.Как только я нажимаю href на моей html-странице, я вижу созданную таблицу, и значение вставляется. Но как только я закрываю браузер и снова открываю его, данные исчезают.
Почему-то похоже, что данные сохраняются только в сеансе.Что я здесь не так делаю?
Я загрузил подобный код в этом месте.Может кто-нибудь попробовать это и дайте мне знать, если это работает для кого-либо.Для меня та же проблема, данные сохраняются.Я перезагружаю браузер и данные исчезают.http://classictutorials.com/CTFiles/