Почему в Firebug отображаются несколько запросов GET? - PullRequest
2 голосов
/ 14 июля 2009

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

Первое, что я заметил, это то, что все мои .aspx-страницы "ПОЛУЧАЮТ" как минимум три раза. Это нормально? Если нет, что такое "нормально"? Что влияет на "получение" страниц .aspx? Я предполагаю, что это включает в себя время, необходимое для попадания в базу данных и рендеринга всех элементов управления на странице. Это правда?

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

Что нужно учитывать:

  • Использование IIS 6.0 через HTTPS
  • Мы используем мастер-страницы
  • Мы используем элементы управления Telerik

    • A RadMenu
    • RadScriptManager
  • Я, конечно, более толстый клиент, чем веб-парень

EDIT Ответы на вопросы ниже:

  • Код ответа 200

EDIT Снимок экрана добавлен: FirebugScreenshot http://img187.imageshack.us/img187/5873/firebughelp.jpg

РЕДАКТИРОВАТЬ Добавлен дополнительный снимок экрана для включения заголовков запросов

EDIT

Добавлены ссылки

Ответы [ 7 ]

5 голосов
/ 14 июля 2009

РЕДАКТИРОВАТЬ : Вот источник ваших двух дополнительных загрузок страницы:

<script type="text/javascript"
        src='<%# ResolveUrl("~/Common/jQuery/jquery-1.3.2.min.js") %>'> 
</script>

<script type="text/javascript"
        src='<%# ResolveUrl("~/Common/jQuery/jquery-ui-1.7.1.custom.min.js") %>'> 
</script>

Как вы можете видеть в визуализированной версии, атрибут src пуст, поэтому он загружает страницу еще два раза.

<script type="text/javascript" src=''></script>
<script type="text/javascript" src=''></script>

Вероятно, это можно исправить, используя тег сервера runat и разрешив ему автоматически разрешать URL-адреса.

<script type="text/javascript"
        src="~/Common/jQuery/jquery-1.3.2.min.js"
        runat="server"
        ID="jQuery"> </script>
<script type="text/javascript"
        src="~/Common/jQuery/jquery-ui-1.7.1.custom.min.js"
        runat="server"
        ID="jQueryUI"> </script>

(или измените <% #%> на <% =%> - поскольку вам нужна версия, которая выводит строку вместо синтаксиса привязки).

Исходный ответ удален, поскольку он не был связан с реальной проблемой.

3 голосов
/ 14 июля 2009

Маловероятно, что это AJAX-запросы, так как длина ответа одинакова для каждого запроса.

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

Существует известная ошибка в Telerik RadEditor, которая может вызвать такое состояние, но вы не упоминаете об этом в списке используемых элементов управления. Вот более подробно об этом:

http://www.telerik.com/community/forums/aspnet-ajax/editor/radeditor-forces-page-load-twice.aspx

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

1 голос
/ 13 июля 2016

Обычно это происходит, если вы находитесь в среде разработки и "Включить ссылку браузера" в VS 2015/2013. Чтобы избежать нескольких запросов GET, отображаемых в Firebug, снимите флажок «Включить ссылку браузера» на панели инструментов. Если вы просматриваете исходный код страницы, вы найдете тег сценария, добавленный на страницу, когда вы отметите «Включить ссылку браузера». Это вызывает действия Get / Post для сервера iis. Для более подробной информации: http://www.asp.net/visual-studio/overview/2013/using-browser-link

1 голос
/ 14 июля 2009

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

Распространенной причиной для aspx, запрашиваемой несколько раз, является отображение тегов IMG без какого-либо атрибута SRC. По умолчанию будет запрашиваться та же страница для источника изображения. Если это так, то вы можете проверить заголовки запроса в firebug, чтобы увидеть, ожидает ли он изображение.

Вы также можете перейти к консоли и набрать document.images, чтобы получить список всех изображений. Те, которые не видны на странице, будут показаны немного блеклыми. Проверьте их на наличие пустых SRC.

0 голосов
/ 14 июля 2009

Если у вас включена защита, это могут быть запросы и ответы - сначала 401, а затем 200. Какие коды ответов вы получаете?

0 голосов
/ 14 июля 2009

Это может быть много вещей - важной частью запроса является то, что он получает.

Как правило, вы увидите несколько запросов на страницу ASPX, поскольку она загружает библиотеки javascript для выполнения проверки и обратной передачи. В элементы управления также может быть встроен JavaScript как ресурсы, которые, в свою очередь, создают другие запросы GET, обычно для WebResource.axd и ScriptResource.axd.

0 голосов
/ 14 июля 2009

Браузер выполняет запрос GET для каждого ресурса, включенного в страницу, включая файлы js, изображения, файлы css ...

...