Как управлять тем, что страницы aspx загружаются быстрее?


У меня есть (большая) проблема, которая может возникнуть у всех вас, работающих с веб-формами.

Проблема заключается ввремени загрузки страницы . Используя localhost (ведьма должна быть самым быстрым режимом) в Vista (IIS 7) я получаю этот график

Alt текст http://www.balexandre.com/temp/2009-06-29_1302_soquestion.png

Ссылка на исходный файл

Как вы можете видеть, требуется более 17 секунд, чтобы показать страницу!!! и только 2 секунды, чтобы загрузить страницу самостоятельно...

Я использую ASP.NET AJAX framework для работы с веб-частями.

Как я могу сократить эти 17 секунд?

Любая идея о том, куда идти, очень ценится :)


Добавлено: тест на правильный ответ от Jan Zich

Я проверил изменение

<asp:ScriptManager ID="sm" runat="server" />

В

<ajax:ToolkitScriptManager ID="sm" runat="server" CombineScripts="true" />

И результат использования FireBug впечатляет (половина времени, а не использование кэша!) как вы можете видеть на рисунке ниже

Alt текст http://www.balexandre.com/temp/2009-06-29_1543_soquestion.png

Ссылка на исходный файл

И с CSS и jQuery файлы кэшируются , падает до половины его!

Alt текст http://www.balexandre.com/temp/2009-06-29_1550_soquestion.png

Ссылка на исходный файл

3 4

3 ответа:

Это не будет считаться правильным ответом, потому что я не знаю, как это исправить, но проблема в том, что большинство браузеров (кроме Safari и Chrome, возможно) загружают JavaScript последовательно, потому что необходимо дождаться завершения выполнения предыдущего скрипта (поскольку это может изменить документ). Это обычно исправляется путем объединения всех файлов JavaScript в один.

Правка: связанный Вопрос: Как мне объединить WebResource.axd и ScriptResource.axd файлы так, чтобы привести к меньше просьб к моему ASP.NET сервер?. Кроме того, я не вижу, какие скрипты вы на самом деле включаете из скриншота, но, скорее всего, это ваши собственные скрипты. Есть ли способ в вашем приложении объединить их каким-то образом?

Имейте в виду, что при включенном режиме отладки (в web.config: <compilation debug="true">), такие ресурсы, как файлы javascript, изображения и файлы CSS, не кэшируются браузером.

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

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

Можно расширить панель обновления, однако, чтобы показать перед загрузкой ваши данные - Эта статья описывает, как это сделать (увы, на голландском языке, но я считаю, что комментарии внутри кода были на английском языке)