Ich erhalte wiederholt ein JSON-Objekt vom Server mit AJAX-Aufrufen. Mit der Zeit wächst der Speicherverbrauch des Browsers (versucht mit Chrome, Safari, Firefox). Mit den Half-Snapshots von Chrome habe ich festgestellt, dass die Timestamp-Zeichenfolgen ohne Referenzen bleiben. Wenn ich eine Sequenz von Snapshots mache, sehe ich, dass die Anzahl der Strings ständig zunimmt.Speicherverlust mit AJAX-Anfragen + jQuery
$(function() {
var latestTimestamp = 0;
function fetchData() {
$.get("/parameter?format=json&since=" + latestTimestamp, gotData)
}
function gotData(data) {
latestTimestamp = data['timestamp'];
setTimeout(fetchData, 250);
}
fetchData();
});
Andere Anmerkungen:
- ich jQuery 1.7.1 mit bin. EDIT: Habe gerade mit 1.6.2 und 1.4.2 versucht, gleiches Problem.
- Die
timestamp
im JSON-Objekt ist eigentlich eine ganze Zahl, keine Zeichenfolge. Die akkumulierenden Strings könnten also temporäre Werte sein? - Das Entfernen der
+ latestTimestamp
aus der AJAX-Anforderung stoppt das Leck. - Ein schneller setTimeout (20ms) verursacht das Leck schneller. Ich dachte, die schnelle Auszeit könnte daran schuld sein, also habe ich es auf 250ms reduziert, aber das hat nicht geholfen.
@Vega FetchData ist schon da im Code;) (Linie 4) – Dave
Vielleicht werden es vorziehen, JQuery $ .get ("/ Parameter", {Format: "json", da: latestTimestamp}, gotData); – nikoshr
@nikoshr Coole Idee. Ich habe es gerade versucht, aber es leckt immer noch. – Dave