Баланс между использованием Ajax на $ .ready () и загрузкой данных уже - PullRequest
0 голосов
/ 03 января 2012

У меня есть страница, которая имеет несколько независимых разделов.Данные должны заполняться в каждом разделе различными запросами к базе данных.

Чтобы уменьшить время загрузки страницы, я изменил загрузку каждого раздела (следуя философии Amazon.com).Чтобы загрузить каждый раздел страницы, я выполняю ajax-вызов на методе $.ready() на моей странице, который, в свою очередь, извлекает данные из базы данных.которые полностью генерируют разделы.Теперь я не уверен, перегружаю ли я сервер, делая 6 запросов каждый раз, когда запрашивается страница.Любые предложения?

(я использую Struts / Hibernate / Jsp / jQuery)

Ответы [ 2 ]

1 голос
/ 03 января 2012

Вы всегда можете поставить Ajax-вызовы в очередь, чтобы они происходили по одному за раз. Для этого есть плагины jquery:

http://www.protofunc.com/scripts/jquery/ajaxManager/

Мне, однако, 6 вызовов не кажется слишком плохим, если они не вызывают большой активности сервера (жесткие запросы БД, обработка файлов и т. Д.)

0 голосов
/ 03 января 2012

альтернативно, вы можете запустить все свои запросы, как только будет запрошена страница, и сохранить результаты для вызовов ajax.Это требует асинхронного выполнения на сервере, и вы должны убедиться, что программа ответа ajax также может ожидать завершения sql.

Если вы запрашиваете одни и те же данные в нескольких из 6 ваших запросов, это может стоитьЭто.Если таблицы различны для каждой из них, это может быть действительно контрпродуктивно (в зависимости от вашего механизма базы данных и архитектуры кластера).

Однако, если нагрузка на базу данных и время отклика являются проблемой, методы кэширования и другие оптимизации обычно работают лучше(memcache на примере).Но опять же, это сильно зависит от вашей базы данных.

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