Ich habe den folgenden jQuery-Code, der eine HTML-Seite abruft, die ich jede Sekunde erzeuge. Nach einer Weile führt dies zu einem nicht ausreichenden Speicherfehler. Wie repariert man?JQuery erfrischende Seite führt zum Browser nicht genügend Speicher
Antwort
Wenn die neuen Anforderungen ausgelöst werden, bevor das vorherige Ereignis beendet wurde, vergewissern Sie sich, dass die vorherige Anforderung abgeschlossen ist, bevor Sie erneut aufrufen. Ich habe den Code unten nicht wirklich getestet, aber er sollte Sie in die richtige Richtung weisen. Verwenden Sie setTimeout und recursion anstelle von setInterval. Offensichtlich gibt diese Lösung keine scharfen Ein-Sekunden-Intervalle, wenn sie aus irgendeinem Grund benötigt werden (mehr als eine Sekunde plus den Anforderungszyklus, der auf die Netzwerkbedingungen des Benutzers zurückzuführen ist), aber ich nehme an, dass Sie nur eine Gesicht stimulierte Aktualisierung und strikt benötigen Timing ist nicht entscheidend.
Immer noch ich zweitens die Kommentare oben, dass 1 Sekunde HTTP-Anfrage-Intervall ist riskant und ein wenig missbräuchlich für beide Browser und Server, und so sollte es einen wirklich guten Grund, es zu verwenden.
$(document).ready(function() {
function refresh(){
$.get('some_page.html', function (data) {
$('#some_div').html(data);
// call itself recursively
setTimeout(refresh, 1000);
});
};
// init
refresh();
});
- 1. Rekursion führt zu nicht genügend Speicher
- 2. MemoryError: nicht genügend Speicher
- 3. SolrCloud - Nicht genügend Speicher
- 4. Meteor nicht genügend Speicher
- 5. Android nicht genügend Speicher
- 6. Android ViewPager nicht genügend Speicher
- 7. Picasso-Bibliothek - Nicht genügend Speicher
- 8. Nicht genügend Speicher in vb.net
- 9. Git-Status nicht genügend Speicher
- 10. Nicht genügend Speicher während doinbackground
- 11. Matlab pdist2: Nicht genügend Speicher
- 12. C# -Programm Nicht genügend Speicher
- 13. Cabal Installationskriterium nicht genügend Speicher
- 14. Graphics.DrawImage: Nicht genügend Speicher Ausnahme
- 15. Spark Executors hängen nach nicht genügend Speicher
- 16. Javascript, Seite hält erfrischende
- 17. Excel VBA: Laufzeitfehler 7: Nicht genügend Speicher
- 18. Nicht genügend Speicher beim Herunterladen der Datei
- 19. Speicher kann nicht berechnet werden: nicht genügend Speicher für Heap
- 20. Doctrine Blob Typ nicht genügend Speicher Fehler
- 21. GPDB: Nicht genügend Speicher im Segment
- 22. Android setBackgroundResource Ursache nicht genügend Speicher excepiton
- 23. asp.net Suchschaltfläche nur erfrischende Seite
- 24. Nicht genügend Speicher ist für `Console.ReadLine` verfügbar.`
- 25. android universal Bildlader nicht genügend Speicher
- 26. Java auf CentOS: nicht genügend Speicher
- 27. Nicht genügend Speicher-Fehler bei Firebase mit
- 28. Nicht genügend Speicher allocLargeObjectOrArray von ResultSet
- 29. Tomcat nicht genügend Speicher Heapdump-Setup
- 30. IntelliJ IDEA Statistic Plugin "Nicht genügend Speicher"
warum nicht aktualisieren Sie die Seite, anstatt "zu bekommen" jede Sekunde plus jede Sekunde ist ein bisschen viel, warum nicht alle 10 aktualisieren? – Deckerz
Da ein AJAX-Anruf jede Sekunde erstellt wird, wird sowohl der Browser als auch der Server extrem schwer. –
Überprüfen Sie dies auf der Registerkarte "Netzwerk" der Browser-Entwicklungstools. Höchstwahrscheinlich werden die neuen Anforderungen ausgelöst, bevor das vorherige Ereignis beendet wurde und dies nach einiger Zeit Speicher- und Bandbreitenprobleme verursacht. Sie sollten sicherstellen, dass die vorherige Anfrage beendet wurde, bevor Sie erneut anrufen –