Максимальный размер json для ответа браузеру - PullRequest
34 голосов
/ 20 января 2012

Я создаю дерево с некоторым пользовательским элементом управления, подготовленным с помощью JavaScript / jquery.

Для создания дерева мы предоставляем объект json в качестве входных данных для java-скрипта, чтобы перебрать и создать дерево.

Так как объем данных может доходить до 25К узлов. во время базового нагрузочного теста мы определили, что браузер будет зависать для такого объема.

Альтернативным решением является загрузка первого уровня узлов и загрузка по требованию с помощью AJAX-запроса. Объем первого уровня может варьироваться до 500 - 1K узлов.

Какой максимальный размер должен иметь json в ответе от сервера. Что может быть лучшим подходом для обработки такого объема данных в браузере.

Ответы [ 3 ]

14 голосов
/ 20 января 2012

Максимальный размер ответа HTTP не ограничен (или настроен максимальный размер Int, или ограничение браузера, или ограничение сервера).

Наилучший подход - использовать AJAX для загрузки части.данных пока его нужно показывать.

8 голосов
/ 20 января 2012

Ответ HTTP не имеет ограничения по размеру. JSON приходит как ответ HTTP. Так что у него нет ограничений по размеру.

Возможна проблема, если объект, проанализированный по ответу JSON, занимает слишком много памяти. Это приведет к краху браузера. Так что лучше тестировать с разными размерами данных и проверять, правильно ли работает ваше приложение.

Я думаю, отложенная загрузка - лучший подход для таких больших объемов данных. Особенно при работе с объектными литералами.

См. Высокопроизводительное Ajax-приложение Презентация от Yahoo.

3 голосов
/ 29 апреля 2014

Ну, я думаю, что слишком поздно, чтобы отдать свои два цента. Дополнение к ответу shiplu.mokadd.im памяти браузера является ограничением, и ответ HTTP может содержать любой объем данных в соответствии со спецификацией TCP.

Но у меня есть приложение, которое использует Google Chrome (версия 29.0.xx) и сервер Jetty, где ответ от сервера Jetty имеет полезную нагрузку, составляющую 335 МБ. Пока браузер получает ответ такого размера, Chrome перестает оставлять сообщение «IPC-сообщение слишком большое». Хотя это характерно для Google Chrome (не уверен в других браузерах), должен быть порог для максимального размера ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...