aboutsummaryrefslogtreecommitdiffstats
path: root/offline-submit/john-resig-offline-app-stub.js
diff options
context:
space:
mode:
Diffstat (limited to 'offline-submit/john-resig-offline-app-stub.js')
-rw-r--r--offline-submit/john-resig-offline-app-stub.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/offline-submit/john-resig-offline-app-stub.js b/offline-submit/john-resig-offline-app-stub.js
new file mode 100644
index 0000000..b9d6160
--- /dev/null
+++ b/offline-submit/john-resig-offline-app-stub.js
@@ -0,0 +1,43 @@
+// stub for the offline application in pseudocode
+// from http://ejohn.org/blog/offline-events/
+
+function saveData( item ){
+ if ( navigator.onLine ) {
+ saveToServer( item );
+ } else {
+ toSave.push( item );
+ }
+}
+
+function loadData( item ){
+ if ( navigator.onLine ) {
+ return loadFromServer( item );
+ } else {
+ var result = loadFromQueue( item );
+ if ( !result ) {
+ displayError();
+ toLoad.push( item );
+ }
+ return result;
+ }
+}
+
+setInterval(function(){
+ if ( navigator.onLine ) {
+ var item = predictNextItemToBeLoaded();
+ loadData( item );
+ }
+}, 5000);
+
+window.ononline = function(){
+ toSave.forEach( saveData );
+ toLoad.forEach( loadData );
+};
+
+window.onload = function(){
+ document.getElementById("myform").onsubmit = function(){
+ saveData( this );
+ return false;
+ };
+};
+