Как постепенно создавать заголовок перед контентом на основных страницах ASP.NET?

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

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

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

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

Любые указатели на то, как достичь этого?

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

Изменить

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

Ответ 1

Я предлагаю вам использовать кэширование управления. 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

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

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

control.GetCachePolicy()

Ответ 2

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

Этот вопрос кажется связанным: Как установить передачу-кодировку в явном или неявном порядке в ответ ASP.NET?

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

Ответ 3

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

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

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

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