• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[JQUERY] jquery refresh

knuppel

New member
Hallo,

ich habe eine Steuerung auf der läuft ein Webserver. Es gibt ein paar ASP Befehle, welche eine Variable aus der Steuerung holen und darstellen. Um "Live"-Werte zu sehen lass ich das ganze alle 5 Sekunden aktualisieren.
In meiner HTML Datei steht also:
Code:



Code:
<script> var refreshId = setInterval(function() { $('#responsecontainer').load('werte.asp').fadeIn("fast"); }, 5000); </script>

In der werte.asp werden ca. 30 Werte geholt.

Nun kommt es aber nach einer Zeit im Internetexplorer & Co. zu einem Überlauf, d.h. der Browser braucht immer mehr Speicherplatz. Kann ich dagegen wirken?

Gruß knuppel
 
Ich würde die Aktualisierung mit Ajax machen. Da kannst du auch viel besser steuern, was bei Erfolg und Misserfolg passieren soll.
Du hast jQuery erwähnt. Das hätte ich jetzt auch empfohlen, damit kann man den Ajax Request mit ganz wenig Code erledigen.
 
Nun kommt es aber nach einer Zeit im Internetexplorer & Co. zu einem Überlauf, d.h. der Browser braucht immer mehr Speicherplatz. Kann ich dagegen wirken?
vor dem nachladen des responsecontainer alle referenzen die dieser enthält auflösen und entfernen. also eventhandler austragen, elemente löschen ...
vor allem alte IEs haben da so ihre schwierigkeiten mit
zur not auf ajax mit jquery verzichten und das per hand erledigen, dann kannst du besser steuern, was mit dem requestobjekt passiert
 
Sorry, ich sehe gerade, dass ich mich völlig verlesen habe. Hab den gezeigten Code so gelesen als wäre das <meta http-equiv="refresh" content="..."> dort verwendet worden. Ist natürlich nicht aber meine Augen haben falsch gearbeitet.
Bitte Hinweise von hesst befolgen und mein Post ignorieren.
 
vor dem nachladen des responsecontainer alle referenzen die dieser enthält auflösen und entfernen. also eventhandler austragen, elemente löschen ...
vor allem alte IEs haben da so ihre schwierigkeiten mit
zur not auf ajax mit jquery verzichten und das per hand erledigen, dann kannst du besser steuern, was mit dem requestobjekt passiert

Passiert ist das mit einemm IE 11.
Wie lösche ich die Referenzen?
 
Wie lösche ich die Referenzen?
Versuch mal die Löschung des Inhalts mit jQuery's .remove() bevor was neues geladen wird.

Und dann würde ich nicht grob jedes mal einen Task rein hauen sondern ich würde das setInterval() in das complete von .load() nehmen. Dann ist wenigstens sichergestellt, dass das nächste Laden erst efolgt, wenn das vorhergehende wirklich fertig ist und erfolgreich war.

Also eher in diese Richtung:
HTML:
var refreshId;
function nachladen() {
    $('#responsecontainer').children().remove();
    $('#responsecontainer').load('werte.asp',function() {
        $('#responsecontainer').fadeIn("fast");
        refreshId = setInterval(nachladen,5000);
    });
}
nachladen();
Je nach Umfeld dann ggf. noch schauen, dass die Variable nicht global ist. Wenn man sie nicht braucht, einfach weg lassen.
 
Zurück
Oben