Как оптимизировать веб-приложение с учетом задержки из-за множества асинхронных запросов в фоновом режиме?

Я разрабатываю модульную RIA на основе архитектуры MVC на стороне тонкого сервера. Прямо сейчас приложение заполнено только на 10%, и поэтому еще не поздно внести изменения в дизайн.

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

Однако меня беспокоит то, что возможно ли выполнение нескольких тяжелых запросов Ajax фон заглохнуть в браузере? Я недавно наблюдал серьезные проблемы с задержкой в ​​некоторых сервисах агрегации социального контента, и, проанализировав код на стороне клиента, я был удивлен, что размер приложения на стороне клиента был довольно небольшим, в пределах 300 КБ. Однако при запуске приложения очень часто браузер (как Firefox, так и IE) зависал, и на его восстановление уходило несколько секунд. После анализа асинхронных запросов выяснилось, что приложение одновременно извлекает пользовательский контент из Gmail, Facebook и Twitter и помещает его в DOM, при этом занимая слишком много ресурсов памяти.

Было бы здорово, если бы кто-нибудь мог указать мне на некоторые рекомендации / передовые методы предотвращения таких проблем. Было бы целесообразно написать собственный сценарий оболочки, который загружает контент в фоновом режиме последовательно в заранее заданном порядке важности, а не загружает их все параллельно, что может в конечном итоге привести к параллельному выполнению нескольких обратных вызовов.

Мы будем очень благодарны за любой совет.

6
задан lorefnon 24 June 2011 в 06:29
поделиться