pascal007
06-07-2010, 16:48
Hallo :D,
Ich habe gerade ein Problem: Ich möchte, dass wenn ein Benutzer meiner Seite in ein anderes Tab wechselt oder das Fenster minimiert (also einfach das Fenster/Tab "defokusiert") und danach sich das Fenster/Tab wieder anzeige lässt, dass ein Ajax-Request abgsetzt wird.
So wie bei Facebook... sobald man das Tab/Fenster mit Facebook wieder öffnet, werden die neuen Beiträge geladen die in der Zwischenzeit gemacht wurden.
Auf was für einen Event muss ich da achten? Ich hoffe mir kann jemand weiterhelfen :D...
AmicaNoctis
06-07-2010, 16:55
Hallo,
Auf was für einen Event muss ich da achten?
document.onfocus
Gruß,
Amica
pascal007
06-07-2010, 17:12
Super :D danke viel mals! Das ich das nicht alleine rausbekommen habe :eek:.
Und ggf. noch onblur, um erst mal zu merken, dass das Fenster/Tab minimiert/in den Hintergrund gesetzt wurde, um dann noch geplante Aktualisierungen bis auf weiteres einzustellen.
pascal007
14-07-2010, 16:04
Und ggf. noch onblur, um erst mal zu merken, dass das Fenster/Tab minimiert/in den Hintergrund gesetzt wurde, um dann noch geplante Aktualisierungen bis auf weiteres einzustellen.
Genau das habe ich nun versucht. Ich habe es alleerdings nicht hinbekommen meine PeriodicalUpdaters von prototype zu stoppen:
var updatePrivate = new Ajax.PeriodicalUpdater('content', 'ajax.php', {
parameters: { module: 'loadMessages', filter: 'private' },
method: 'post', frequency: 10,
onSuccess: function(transport) { $('respondmsg').innerHTML = 'UPDATE! ' + new Date(); }
});
/** onBlur / onFocus */
if (/*@cc_on!@*/false) { // check for Internet Explorer
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
function onBlur() {
$('respondmsg').innerHTML = 'blurred';
$('respondmsg').show();
updatePrivate.stop();
};
function onFocus(){
$('respondmsg').innerHTML = 'focused';
$('respondmsg').show();
updatePrivate.start();
};
Wenn ich direkt nach meinem PeriodicalUpdater die stop() methode aufrufe, stoppt er auch. Aber in den Funktionen drin scheint er es zu ignorieren. Wieso das? das innerHTML in den Funktionen klappt tipp top... in Firefox und IE.
Das stoppen des Updaters klappt nur im IE...
AmicaNoctis
14-07-2010, 16:09
Vielleicht solltest du die Funktionen definieren, bevor du sie an den Event bindest und nicht nachher ;)
pascal007
14-07-2010, 16:31
Das ändert nichts :). Im IE gehts im FF nicht... das innerHTML der Funktionen geht aber in beiden Browsern. Nur der PeriodicalUpdater stoppt nur im IE...