Максимальный размер json для ответа браузеру
Я создаю дерево с некоторыми пользовательскими элементами управления, подготовленными с помощью JavaScript/jquery.
Для создания дерева мы предоставляем объект json в качестве входных данных для java-скрипта, чтобы перебрать и создать дерево.
Так как объем данных может доходить до 25К узлов. во время базового нагрузочного теста мы определили, что браузер будет зависать для такого объема.
Альтернативное решение - просто загрузить первый уровень узлов и покой загрузить по требованию с помощью AJAX-запроса. Объем первого уровня может варьироваться до 500 - 1K узлов.
Какой максимальный размер должен иметь json в ответе от сервера. Что может быть лучшим подходом для обработки такого объема данных в браузере.
4 ответа
Максимальный размер ответа HTTP не ограничен (или настроен максимальный размер Int, или ограничение браузера, или ограничение сервера).
Наилучший подход - использовать AJAX для загрузки части данных, когда они должны быть показаны.
HTTP-ответ не имеет ограничения по размеру. JSON приходит как ответ HTTP. Так что у него нет ограничений по размеру.
Могут возникнуть проблемы, если объект, проанализированный из ответа JSON, занимает слишком много памяти. Это приведет к краху браузера. Так что лучше тестировать с разными размерами данных и проверять, правильно ли работает ваше приложение.
Я думаю, что ленивая загрузка - лучший подход для таких больших объемов данных. Особенно при работе с объектными литералами.
Смотрите презентацию высокопроизводительного Ajax-приложения от Yahoo.
Ну, я думаю, что я слишком поздно, чтобы дать свои два цента. В дополнение к ответу shiplu.mokadd.im память браузера является ограничением, и ответ HTTP может содержать любой объем данных в соответствии со спецификацией TCP.
Но у меня есть приложение, которое использует Google Chrome (версия 29.0.xx) и сервер Jetty, где ответ от сервера Jetty имеет полезную нагрузку, составляющую 335 МБ. Пока браузер получает ответ такого размера, Chrome перестает оставлять сообщение "IPC-сообщение слишком большое". Хотя это характерно для Google Chrome (не уверен в других браузерах), должно быть ограничение на максимальный размер ответа.
Ограничения на максимальный размер нет, но размер зависит от ОЗУ клиентской системы (системы, в которой существует браузер), ЦП, пропускной способности сети для анализа больших данных json. Если система находится на низком уровне и с большими данными json, браузер зависает.