Как постепенно визуализировать заголовок перед содержимым на главных страницах ASP.NET? - PullRequest
11 голосов
/ 29 апреля 2011

У меня большой медленный сайт ASP.net, который использует главные страницы.

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

Я сделал несколько простых тестов, и я могу выполнить Response.Write (), за которым следует Response.Flush () в page_load (), и IIs будут использовать кусочную кодировку и отправлять вывод в браузер немедленно, пока остальные рендеринг страницы.

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

Есть ли какие-нибудь указатели о том, как этого добиться?

Использование ASP.net 4 и II 7.5

Редактировать

Если кто-нибудь может дать несколько советов о том, как изменить сайт на использование AJAX без необходимости менять каждую страницу и ссылку, я был бы признателен за это. Спасибо!

Ответы [ 4 ]

3 голосов
/ 29 апреля 2011

Если вы в какой-то момент вручную очищаете поток ответов и не устанавливаете длину содержимого вручную, это активирует кусковое кодирование.

Этот вопрос кажется связанным: Как я могу установить Transfer-Encoding на chunked, явно или неявно, в ответе ASP.NET?

И в этом сообщении в блоге говорится о сбросе ответов и кодировании по частям: http://www.rahulsingla.com/blog/2010/06/asp-net-sets-the-transfer-encoding-as-chunked-on-premature-flushing-the-response

2 голосов
/ 07 мая 2011

Это может быть полезно для вас.Я всегда использую yslow для FF вместе с firebug, чтобы проверить производительность.

https://addons.mozilla.org/en-us/firefox/addon/yslow/

https://addons.mozilla.org/en-US/firefox/addon/firebug/

http://msdn.microsoft.com/en-us/library/ff647787.aspx

http://developer.yahoo.com/performance/rules.html

Спасибо

2 голосов
/ 06 мая 2011

Я бы предложил проследить страницу и попытаться выяснить, почему именно страница медленно отрисовывается.Следующее может помочь ...

http://www.dotnetscraps.com/dotnetscraps/post/How-to-troubleshoot-issues-with-Page-Rendering-in-ASPNET.aspx

И использовать DIV вместо TABLE!

Относительно использования AJAX, AFAIK ... ярлыка нет.Вы можете использовать менеджер скриптов AJAX на своей главной странице и использовать прокси менеджера скриптов для страниц, на которых вы хотите изменить страницу.Измените свою форму, чтобы ввести панель обновлений, и вы должны быть хороши для большинства страниц.

2 голосов
/ 05 мая 2011

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

Кэширование ASP.NET: методы и лучшие практики

http://msdn.microsoft.com/en-us/library/aa478965.aspx

Кэширование ASP.NET

http://msdn.microsoft.com/en-us/library/xsbfdd8c(v=VS.100).aspx

Управление кэшированием

Как вы уже упоминали, похоже, что вы уже используете кэширование страниц.Попробуйте использовать control-caching для дальнейшего улучшения кеширования.Чтобы использовать управление кэшированием, поместите PartialCachingAttribute над классом управления.Вы можете использовать ControlCachePolicy элемента управления для установки режима кэширования:

control.GetCachePolicy()
...