Ich habe eine Tabelle mit häufig aktualisierten Informationen. Dies wird unter Verwendung eines Container-Div mit einem Div für jede Zeile dargestellt, wobei jede Zeile 10 Divs enthält.Welches ist die meisten Speicherleck sicheren Ansatz
Ich benutze setInterval, um einen asmx-Webservice aufzurufen, der einige json-formatierte Informationen zurückgibt.
Auf den Erfolg Rückruf rufen Sie $("#myContainer").empty();
auf dem Container div und erstellen Sie die Zeilen und 10 verschachtelte divs für jede Zeile Spalten.
Diese Seite kann für einen ganzen Tag laufen, so dass ich vorsichtig bin, das DOM so zu aktualisieren, wie ich bemerkt habe, dass Speicher für den Browser im Laufe der Zeit (IE8) steigt.
Der andere Ansatz, den ich in Betracht ziehe, besteht darin, eine ID zur Zeile div hinzuzufügen. Wenn neue Ergebnisse jedes Datenelement verarbeiten, suchen Sie nach der entsprechenden Zeile, falls vorhanden, überschreiben Sie die Daten in jedem div. Wenn es nicht existiert (z. B. neue Daten), hängen Sie die Zeile an.
Welche Ansätze haben andere für diese Art von langlebigen Pseudo-Echtzeit-Informationsanzeige verwendet.
TIA
Ist das eine erwiesene Tatsache? Hast du eine Referenz, nicht dass ich dich bezweifle, wäre es wirklich nett, darüber mehr zu lesen. – raveren
@ Raveren: Nein, es ist keine bewiesene Tatsache. Tatsächlich ist es ein ziemlich pessimistischer Ansatz, da ich sicher bin, dass moderne Browser mehr als nur in der Lage sind, den Speicher beim Erstellen/Löschen von DOM-Elementen zu verwalten. Nichtsdestoweniger ist es so ein Kopfzerbrechen, Speicherlecks in langlebigen Webanwendungen zu finden (die mehrere Tage offen geblieben sind), dass ich immer versuche, an diesem pessimistischen Ansatz festzuhalten. Offensichtlich wäre dies für komplexe GMail-ähnliche Anwendungen nicht möglich. Aber es sieht so aus, als ob das OP einfach eine Datentabelle in Echtzeit aktualisiert, in welchem Fall ich den Ansatz, den ich zuerst vorgeschlagen habe, versuchen würde. –