Hi, maybe i am totally wrong but isnt it possible to you the browsers navigator object? navigator.onLine returns true if online.
stefan On 1 Apr., 04:03, 浩翔 <[email protected]> wrote: > Hi all, > > This is my code for detect network status , it maybe help to > you. > Thanks Dimitri Glazkov > (http://code.google.com/p/glazkov-attic/source/browse/trunk/YourTimesh...) > > ---------------------------------------------------------------------------------------------------- > /** > * The ParentWorkerPool of Monitor whether the system is online or > offline > * > * Alex([email protected]) > * 2009.3 > */ > isOnlie: function(){ > workerPool = google.gears.factory.create('beta.workerpool'); > > workerPool.onmessage = function(a, b, message) { > if (message.sender == monitorchildWorkerId) { > if(message.text == 'online'){ > $('#is-connected').show(); > $('#is-disconnected').hide(); > }else if(message.text == 'offline'){ > $('#is-disconnected').show(); > $('#is-connected').hide(); > } > } > }; > > var monitorchildWorkerId = workerPool.createWorkerFromUrl('/ > javascripts/js_app/models/monitor.js'); > workerPool.sendMessage(window.location + '?monitor', > monitorchildWorkerId); > > } > > /** > * The ChinldWorkerPool of Monitor whether the system is online or > offline > * > * Alex([email protected]) > * 2009.3 > */ > > var POLLING_INTERVAL = 2000; > > var wp = google.gears.workerPool; > var url; > var parentId; > > var first = true; > var online; > > var request = google.gears.factory.create('beta.httprequest', '1.0'); > var timer = google.gears.factory.create('beta.timer'); > > var wp = google.gears.workerPool; > > monitor = function (message) { > var count = 0; > var db = google.gears.factory.create('beta.database'); > db.open('red-CustomersManagement'); > request.open('HEAD', url + String(Math.floor(Math.random()*10000))); > request.onreadystatechange = function() { > if (request.readyState == 4) { > try { > if (request.status == 200) { > rs = db.execute("select * from isonline",[]); > if(rs.isValidRow()){count = rs.field(0)}; > if (!online) { > online = true; > if (count == 0){ > db.execute("insert into isonline (state) values (?)", > ['online']); > }else{ > db.execute('update isonline set state=? where > state=?;', ['online',"offline"]); > } > > rs.close(); > wp.sendMessage("online", parentId); > } > } > } > catch(e) { > if (online || first) { > online = false; > first = false; > db.execute('update isonline set state=? where state=?;', > ['offline',"online"]); > wp.sendMessage("offline", parentId); > > } > } > db.close(); > // wp.sendMessage('ddd', parentId); > timer.setTimeout(monitor, POLLING_INTERVAL); > } > } > try { > request.send(); > } > catch(e) { > if (online) { > online = false; > var db = google.gears.factory.create('beta.database'); > db.open('red-CustomersManagement'); > db.execute('update isonline set state=? where state=?;', > ['offline',"online"]); > db.close(); > wp.sendMessage("offline", parentId); > } > } > > } > > wp.onmessage = function(a, b, message) { > url = message.text; > parentId = message.sender; > monitor(message) > > } > > ------------------------------------------------------------------------------------------------ > > thank you! > > Alex
