var request = google.gears.factory.create('beta.httprequest');
var isServerAvailableStatus = false;
var PING_TIMEOUT_SECONDS = 1*1000;
function checkServerStatsAndChangeMode(){
isServerAvailable();
window.setTimeout("changeMode(')",PING_TIMEOUT_SECONDS);
}
function isServerAvailable() {
var resource_to_test = "FAQs_to_write.txt";
resource_to_test += "?q=" + Math.floor(Math.random() * 100000);
request.open('GET', resource_to_test);
request.onreadystatechange = serverAvailable
request.send();
//window.setTimeout("isServerAvailable()",TIME_BETWEEN_PINGS);
}
function pingSuccess() {
if(request.responseText != "" && request.responseText.indexOf("404
Page not found") == -1){
addStatus("[Server Accessible]");
} else {
addStatus("[Server Inaccessible]");
}
}
function changeMode(){
if(isServerAvailableStatus){
if(isGoOffLine == 'true'){
}else{
}
}
}
this is the solution for checking the server status and continue ur
flow accordingly.
Thanks
Amit Kumar Verma
On Apr 9, 6:19 pm, frog <[email protected]> wrote:
> Hi,
> yes it's possible stefan, at least on Firefox, but there are many
> other reasons to be disconnected, ( a disconnected cable, no more
> wifi...) and i don't think that Firefox can detect these failures.
> that's why we need a code for detection mode.
> Loïc
>
> On Apr 7, 4:57 pm, stefan <[email protected]> wrote:
>
> > 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