Рекомендации по оптимизации времени динамической загрузки страницы (сгенерированный JSON HTML) - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть приложение Rails, в котором я загружаю базовый макет HTML и заполняю основной контент строками div из JSON. Это работает в 2 этапа:

  1. Визуализация HTML
  2. Ajax-вызов для получения JSON

Преимущество заключается в возможности кэширования макета HTML, который не сильно меняется, но, похоже, имеет больше недостатков:

  1. 2 HTTP-запроса
  2. HTML не так уж и сложен, сгенерированный html - это место, где вся работа выполнена, поэтому я, вероятно, не так много экономлю на времени.
  3. Каждый запрос в моем конкретном случае требует, чтобы мы проверяли текущего пользователя, его роли и некоторые вещи, связанные с этим пользователем, поэтому эти 2 вызова несколько связаны.

Конечно, memcached, вероятно, решит многое из этого, мне интересно, есть ли здесь лучшие практики. Я думаю, я мог бы сделать это:

  • Отображение первой страницы встроенного JSON в блоке script вместе с HTML. Это исключило бы те 2 обращения к серверу, которые требуют аутентификации пользователя. И если предположить, что в 80% случаев вам не нужно совершать второй вызов ajax (в данном случае разбивка на страницы / сортировка), это кажется довольно хорошим решением.

Что вы думаете о том, как подойти к этому?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2010

Вы используете какой-то инструмент мониторинга?Я использую бесплатную версию RPM New Relic на Heroku.Он дает много данных о времени запроса для отдельных действий контроллера.Подобные данные могут помочь вам сосредоточиться на процессе оптимизации.

0 голосов
/ 09 ноября 2010

Есть такие плюсы и минусы для подобных вещей. В общем, я бы сказал, что это хорошая идея, если все, что вы откладываете с помощью ajax-вызова, задержит загрузку страницы настолько, чтобы раздражать конечного пользователя в большинстве случаев использования на вашей странице.

Хорошим примером этого является просмотр репозитория на github. В 90% случаев все, что вам нужно, это перемещаться по файлам, поэтому они используют загрузку ajax для заполнения сообщений фиксации для файла после загрузки страницы.

Звучит так, будто вы пытаетесь сделать это, чтобы ускорить или сделать что-то необычное для своих пользователей, но я думаю, что вы должны рассмотреть, какая часть медленная и какая скорость загрузки страницы (и, возможно, для какой эта страница) на ваших пользователей ожидают. Как вы говорите, использование memcached или фрагментного кэширования вполне может дать вам улучшения, которые вы ищете.

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