2010-07-26 3 views
1

Каким образом рендеринг страницы ASP.NET происходит от браузера Server to Client Browser? Вопрос в том, что на странице есть верхний и нижний колонтитулы, которые являются элементами управления пользователя и содержат множество элементов управления сервером.ASP.NET Page Rendering

Запускает ли ASP.NET отправку HTML-кода в клиентский браузер, как только некоторые элементы управления будут визуализироваться и преобразовываться в соответствующий HTML-код? Или он ожидает, что вся страница будет отображена и преобразована в HTML на сервере, а затем отправит HTML-страницу в браузер.

Я вижу, что «Название страницы» нашего сайта показывается намного раньше, а затем страница занимает слишком много времени при полной загрузке. Я хочу четко понимать эту концепцию: виновен ли ее сервер, который занимает время или сценарии на стороне клиента, изображения и т. Д. Соответственно, мы начнем оптимизацию.

В частности, мне интересно узнать, как выходной поток (в объекте ответа) отправляется в браузер клиента? Является ли поток вывода красным, как только вся страница отображается в выходном потоке или отправляется клиенту пакетами (т. Е. Несколько элементов управления, обработанных и отправленных в браузер через выходной поток ->, затем выводятся некоторые другие элементы управления и т. Д.)?

Извините, если недостаточно ясности о проблеме.

ответ

1

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

я получил ответ на: http://www.asp.net/aspnet/overview/aspnet-and-visual-studio-2012/whats-new

«Обычно ASP.NET буферизацию байт ответа, поскольку они создаются с помощью приложения ASP.NET затем выполняет одну операцию посыла начисленных буферов в самом конце. обработка запросов.

Если буферизованный отклик большой (например, потоковая передача большого файла клиенту), вы должны периодически вызывать HttpResponse.Flush для отправки буферизованного вывода клиенту и сохранения управления памятью.Однако, поскольку Flush является синхронным вызовом, итеративно вызовом Flush еще потребляет нить на время потенциально долгоиграющие запросы.»

Спасибо всем за вашу помощь !!!

3

с точки зрения отладки вы можете превратить .NET tracing на для того чтобы увидеть, что нашли время на стороне сервера,

и использовать Google Chrome или поджигатель для Firefox для того чтобы увидеть, что нашли время на стороне клиента.

1

Элементы управления пользователя отображаются перед элементами управления на самой странице .aspx.

Посмотрите на Page Life Cycle

+0

Вы можете также найти этот блог хорошее руководство по последовательности событий в жизненном цикле страницы: http://weblogs.asp.net/jeff/archive/2004/07/04/172683.aspx –

2

Я считаю, что это контролируется Response.BufferOutput или что-то подобное (не эталонным под рукой), чтобы определить, должен ли он начать посылать HTML, как только он будет готов, или если он должен хранить его в буфере и ждать, пока все будет сделано, а затем отправить его.

1

Fiddler должен помочь определить, где находится узкое место, если вы видите заголовок страницы, но страница не отображается немного после того, как я подозреваю, что есть другие файлы (изображения, javascript, css и т. Д.).), которые удерживают страницу от разрывов в браузере, а не html на странице

1

Page rendering. на этом этапе отображается состояние просмотра страницы и все элементы управления сохранены. Страница вызывает метод Render для каждого элемента управления, а вывод рендеринга записывается в класс OutputStream свойства Response.