d3.json () для загрузки большого файла - PullRequest
0 голосов
/ 18 октября 2018

У меня есть файл 96mb .json

  • Он был отфильтрован только до необходимого содержимого
  • Нет индекса
  • Двоичные файлы созданы, где это возможно

Файл должен быть обработан за один раз для расчета сводной статистики с самого начала.

Сайт: https://3milychu.github.io/met-erials/

Как можно улучшить производительностьи ускорить и / или преобразовать файл .json в сжатый файл, который можно прочитать на стороне клиента в javascript?

1 Ответ

0 голосов
/ 18 октября 2018

Большинство посетителей не будут торчать для загрузки страницы - я думал, что демо было сломано, когда я впервые посетил сайт.Несколько идей:

  • JSON не является компактным форматом данных, поскольку имена тегов повторяются в каждом элементе данных.CSV / TSV намного лучше в этом отношении, так как заголовки появляются только один раз в верхней части файла.

  • С другой стороны, повторяющиеся данные хорошо сжимаются, поэтому вы можете настроитьваш сервер для сжатия ваших данных JSON (например, используя mod_deflate в Apache или сжатие в nginx ) и служите им как сжатый файл, который будет распакован браузером пользователя.Вы можете поэкспериментировать, чтобы выяснить, какая комбинация форматов файлов и сжатия работает лучше всего.

  • Нужно ли рассчитывать сводную статистику при каждой загрузке страницы?При работе с огромными наборами данных в прошлом сводные данные генерировались ежедневным заданием cron, поэтому пользователям не нужно было ждать выполнения запросов.Судя по отзывам пользователей и моему собственному опыту работы с пользователями, сводная статистика представляет лишь промежуточный интерес, и вы, скорее всего, потеряете больше пользователей, заставив их ждать загрузки интерфейса, чем не предоставив сводную статистику или отправив статистику, котораяочень немного устарел.

  • В зависимости от структуры вашего интерфейса / приложения может также иметь смысл разделить массивный файл на сегменты для каждой категории / типа материала и загрузитькатегории по требованию, вместо того, чтобы заставлять пользователя ждать загрузки всего лота.

Существует множество других способов улучшить время загрузки и (воспринимаемую) производительность страницы - например,свяжите ваши CSS и ваши JS-файлы и предоставьте им каждый файл;рассмотрите возможность использования спрайтов изображений, чтобы уменьшить количество отдельных запросов, которые делает страница;обслуживайте свои ресурсы по мере возможности;переместите загрузку JS из заголовка документа в конец HTML-страницы, чтобы она не блокировала загрузку содержимого страницы;загрузка ленивых библиотек JS по мере необходимости;и т. д.

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