मैं http://www.w3.org/TR/offline-webapps/navigator.onLine
में पाया अधूरा उदाहरण के साथ खेल रहा हूँ लेकिन मैं इसे में टिप्पणियों को देखने के व्यथित हूँ की तरह है:
"renders the note somewhere", and
"report error", and
"// …"
तो, किसी की मदद कृपया मुझे एक वैध लिखेंगे उदाहरण? यहाँ मैं अब तक क्या कर लिया है:
<!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>
मैं भी जानता हूँ कि मैं वहाँ कहीं में इसे शामिल करने के लिए है कि:
if (navigator.onLine) {
// Send data using XMLHttpRequest
} else {
// Queue data locally to send later
}
लेकिन मुझे यकीन है यहां तक कि मुझे लगता है कि बहुत टाई क्या नहीं कर रहा हूँ।
मैं प्रत्येक कीस्ट्रोक पर डीबी को बचाने के खिलाफ सलाह दूंगा। उपयोगकर्ता ने अपने टाइपिंग को रोक दिए जाने के बाद * * * सेकंड को बचाने के लिए setTimeout का उपयोग करें। अन्यथा नेटवर्क विलंबता एक दुःस्वप्न टाइपिंग करेगा। खुद, मैं प्रत्येक इनपुट के लिए एक ऑनलर हैंडलर में सहेजता हूं। टिप्पणी के लिए – Robusto
धन्यवाद रोबस्टो। –