| 

.NET C# Java Javascript Exception

5
Hallo, ich habe eine php Daztei die einen Text generiert un diesen ausgibt.
Ich möchte jetzt in einer Html Datei einen DIV Container alle 5 sekunden neu laden mit dem Inhalt der php Datei. Wie mache ich das mit Jquery am besten?

Ich habe schon diveres Tuts probiert aber irgendwie komme ich nicht weiter.

Danke

Jasi
News:
07.11.2009
jasi 149 1 1 5
3 Antworten
6
Mit einem Interval, und jQuery. Alternativ könntest du auch noch das jQuery-Addon "jQuery Timers" nutzen.

Javascript
// Deine Ajax-Funktion
var updateDiv = function ()
{
$('#deinDiv').load('http://deineurl.de?deineparameter');
}

// Den Timer initialisieren
// Das Timeout wird in Millisekunden angegeben
var deinTimer = window.setInterval(updateDiv, 5000);

Löschen kannst du den Timer wiefolgt:

Javascript
window.clearInterval(deinTimer);

Falls es dir noch auf die Performance ankommt, könntest du das Ergebnis von $('#deinDiv') auch in eine weitere gloable Variable speichern, um das ständige Suchen zu sparen.



Nachtrag
Nach dem guten Einwand von DaSpors sähe meine Lösung so aus:

Javascript
// Deine Ajax-Funktion
var updateDiv = function ()
{
$('#deinDiv').load('http://deineurl.de?deineparameter', function () {
deinTimer = window.setTimeout(updateDiv, 5000);
});
}
var deinTimer = window.setTimeout(updateDiv, 5000);
07.11.2009
Blauesocke 638 1 8
2
Benutze anstelle des Strings bei setInterval doch bitte eine Funktionsreferenz! dh.: ...setInterval(updateDiv, ...
Kambfhase 08.11.2009
So, danke. :-)
Blauesocke 08.11.2009
2
setInterval kann aber böse in die Hose gehen wenn das PHP Script mal hängt.
Ich schlage folgende Änderung vor:
var updateDiv = function ()
{
$.get('http://deineurl.de?deineparameter',function(d)
{
$('#deinDiv').html(d);
window.setTimeout(updateDiv, 5000);
}
}
var deinTimer = window.setTimeout(updateDiv, 5000);

Zu stoppen dann:
window.clearInterval(deinTimer);
09.11.2009
DaSpors 3,4k 1 8
Interessanter Einwand, hatte ich so noch nie bedacht. Habe mein Beispiel ebenfalls angepasst.
Blauesocke 10.11.2009
0
Super, vielen Dank, recht simpel mit jquery!
Nochmals Danke!
07.11.2009
jasi 149 1 1 5
Anmerkungen bitte immer als Kommentare zu den Antworten, zudem könntest du ggf. die für dich "richtigste" Antwort als solche markieren. :-)
Blauesocke 10.11.2009

Stelle deine Javascript-Frage jetzt!