ich mit dem unvollständigen Beispiel bin spielen bei http://www.w3.org/TR/offline-webapps/navigator.onLine
gefunden Aber ich bin beunruhigt Kommentare in ihm sehen möchten:
"renders the note somewhere", and
"report error", and
"// …"
So wird jemand bitte helfen Sie mir eine gültige schreiben Beispiel? Hier ist, was ich bisher habe:
<!DOCTYPE HTML>
<html manifest="cache-manifest">
<head>
<script>
var db = openDatabase("notes", "", "The Example Notes App!", 1048576);
function renderNote(row) {
// renders the note somewhere
}
function reportError(source, message) {
// report error
}
function renderNotes() {
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS Notes(title TEXT, body TEXT)',
[]);
tx.executeSql(‘SELECT * FROM Notes’, [], function(tx, rs) {
for(var i = 0; i < rs.rows.length; i++) {
renderNote(rs.rows[i]);
}
});
});
}
function insertNote(title, text) {
db.transaction(function(tx) {
tx.executeSql('INSERT INTO Notes VALUES(?, ?)', [ title, text ],
function(tx, rs) {
// …
},
function(tx, error) {
reportError('sql', error.message);
});
});
}
</script>
<style>
label {
display:block;
}
</style>
</head>
<body>
<form>
<label for="mytitle">Title:</label>
<input name="mytitle">
<label for="mytext">Text:</label>
<textarea name="mytext"></textarea>
<!-- There is no submit button because I want to save the info on every keystroke -->
</form>
</body>
</html>
Ich weiß auch, dass ich das dort irgendwo zu übernehmen haben:
if (navigator.onLine) {
// Send data using XMLHttpRequest
} else {
// Queue data locally to send later
}
Aber ich bin nicht sicher, was auch würde ich das auch binden.
Ich würde bei jedem Tastendruck davon abraten in den DB zu speichern. Verwenden Sie setTimeout, um ein Speichern * n * Sekunden auszulösen, nachdem der Benutzer seine Eingabe angehalten hat. Andernfalls wird die Netzwerklatenz einen Albtraum machen. Ich selbst würde die Speicherung für jede Eingabe in einen Onblur-Handler legen. – Robusto
Danke Robusto für den Kommentar. –