ajax nie działa w nieaktywnej zakładce

0

Witam. Mam problem z wykonywaniem kodu javascript. W nie aktywnych zakładkach,albo gdy przegladarka jest zminimalizowania kod nie jest wykonywany - konkretnie to funkcja ajaxowa. czy można to jakoś naprawić. Mam licznik czasowy, po uplynieciu odpowiedniego czasu nastepuje wykonanie funkcji ajax - ale nie wykonuje sie gdy jestem na innej zakladce lub przegladarka jest zminimalizowna. w chrome i firefox taksamo. Gdzie jest problem?

0

mi coś podobnego robił FF - ale nie dla ajaxa, tylko ogólnie dla timerów.

upewnij się więc czy tu chodzi o timery czy o ajaxa. i zapodaj jakiś kod

0

no własnie, chodzi o timer, plugin http://keith-wood.name/countdown.html , po ukonczeniu odliczania nie wykonuje sie funkcja ktora ma za zadanie ajaxem pobranie czasu i wlaczenie odliczania odnowa
nie wiem co podac, wiec podam 2 funkcje ktore sa istotne. Po ukonczeniu odliczania wykonywana jest funkcja Misja i tak w kółko w zaleznosci co zwroci ajax. O ile pamietam 3 lata temu jak uzywalem czystego javascript i odliczania czasu to nie było problemu, teraz przy 26 wersjach przegladarek moze po prostu zostało to poblokowane dla oszczednosci energii :P

function Misja(id){

$('div#'+id+".time").countdown('destroy');
$('div#'+id+".time").text("Bot On");
 var bot=$("form#"+id).serialize();
    $.ajax({
    type: "POST",
    async: true,
    cache: false,    
    url: "../tmp.php",
    data:{misja:bot},
    dataType: "html"}).done(function(odp){
        
        var $tmp=odp.trim().split(";");
        

        if($tmp[0]=="ok"){Timer(id,$tmp[1]);}
        if($tmp[0]=="stop"){Stop(id);}        
         
    });


}

function Timer(id,sekundy){

var div=$('div#'+id+".progress-bar");
//var div=$('div#'+id+".pasek");
var minuty=sekundy/60;
var text=div.text();
var x=text-minuty;
div.text(x+"");
div.animate({ width: '-='+minuty+'%'}, "slow" );



$('div#'+id+".time").countdown({
    until: sekundy, 
   format: 'YOWDHMS',
    compact: false, 
    layout: '{hnn}{sep}{mnn}{sep}{snn}',
    onExpiry: function(){

        Misja(id);
    },
    onTick: function(){
    //    var width=div.width()-tik; 
      //  div.animate({ "width": width }, "slow" );
    },
   //tickInterval: 1000,
    description: ''
    
    });

}
0

Przeszukaj: https://encrypted.google.com/search?hl=en&q=timer+on+inactive+tab
trochę piszą na ten temat, są niby jakieś obejścia tematu itd

0

dzieki za pomoc

0

Jak znalazłeś coś bardzo przydatnego, to podaj co konkretnie - przyda się innym. Ja się w temat nie zagłębiałem, bo mi potrzebny nie jest, a nie mam tyle czasu, żeby każdy przypadek na forum poznawać i przepisywać rozwiązania ;) Oznacz też post, który rozwiązał Twój problem poprzez kliknięcie "fajki"/"ptaszka".

1 użytkowników online, w tym zalogowanych: 0, gości: 1