it-swarm.com.de

Maximale JSON-Größe für die Antwort an den Browser

Ich erstelle einen Baum mit einem benutzerdefinierten Steuerelement, das mit JavaScript/jQuery erstellt wurde.

Für die Erstellung des Baums stellen wir das json-Objekt als Eingabe für das Java-Skript bereit, um den Baum zu durchlaufen und zu erstellen.

Da das Datenvolumen bis zu 25K Knoten betragen kann. Während eines grundlegenden Auslastungstests haben wir festgestellt, dass der Browser für ein solches Volume abstürzt.

Die alternative Lösung besteht darin, nur die erste Ebene der Knoten zu laden und die Restlast bei Bedarf über AJAX Anfrage. Das Volumen der ersten Ebene kann bis zu 500 - 1K Knoten variieren.

Welche maximale Größe sollte ein JSON als Antwort vom Server haben? Was könnte der beste Ansatz sein, um ein solches Datenvolumen im Browser zu verarbeiten?.

34
ankur

Es gibt kein maximales Größenlimit für die http-Antwort (oder die maximale Größe von Int oder das Limit des Browsers oder das Limit des Servers wurden konfiguriert).

Der beste Ansatz ist, einen Teil der Daten mit AJAX zu laden, während sie angezeigt werden müssen.

14
xdazz

Eine HTTP-Antwort hat keine Größenbeschränkung. JSON kommt als HTTP-Antwort. Es gibt also auch keine Größenbeschränkung.

Möglicherweise liegt ein Problem vor, wenn das von der JSON-Antwort analysierte Objekt zu viel Speicher belegt. Der Browser stürzt ab. Daher ist es besser, wenn Sie mit unterschiedlichen Datengrößen testen und prüfen, ob Ihre App ordnungsgemäß funktioniert.

Ich denke, Lazy-Loading ist der beste Ansatz für so große Datenmengen. Besonders wenn es um Objektliterale geht.

Siehe High Performance Ajax Application Präsentation von Yahoo.

8
Shiplu Mokaddim

Nun, ich glaube, ich bin zu spät, um meine zwei Cent zu geben. Das Ergänzen des Antwortbrowserspeichers von shiplu.mokadd.im ist eine Einschränkung, und die HTTP-Antwort kann eine beliebige Datenmenge gemäß der Spezifikation TCP= aufweisen.

Ich besitze jedoch eine Anwendung, die Google Chrome (Version 29.0.xx) und den Jetty-Server verwendet, wobei die Antwort des Jetty-Servers eine Nutzlast von 335 MB hat, während der Browser die Antwort dieses Sheers empfängt size Chrome hört auf, die Nachricht "IPC message is too big" zu hinterlassen. Dies ist zwar spezifisch für Google Chrome (bei anderen Browsern nicht sicher), es sollte jedoch einen Schwellenwert für die maximale Antwortgröße geben.

3
Bunti