Встроенный стиль вызывает дополнительный запрос - PullRequest
3 голосов
/ 07 марта 2012

On_Load вызывается дважды на странице.После использования Firebug я обнаружил, что он запрашивает

http://localhost/default.aspx

, затем выполняет другой запрос к

http://localhost/default.aspx#ced3db

Я ищу "#ced3db"и нашел его в <table> на странице.Когда я удаляю его атрибут background, проблема исчезает.

<table width="430" height="281" border="0" 
    background="#ced3db" cellpadding="0" cellspacing="0">

Я использовал атрибут style, чтобы не запрашивать страницу дважды.Но мне все еще нужно знать: почему делается два запроса?Я хотел бы понять причину, чтобы избежать повторного запроса страницы, потому что это может сделать любой сайт медленнее.

Редактировать: Вопрос не имеет ничего общего со встроенными стилями по сравнению с использованием файлов CSS.Речь идет о предотвращении непреднамеренного повторного запроса страницы по соображениям производительности.

Примечание: On_Load может вызываться дважды по нескольким причинам. См. ASP.NET Page.OnLoad выполняется дважды

  • AutoEventWireUp имеет значение true, и вы переопределяете On_Load.
  • Пользовательский элемент управления содержит AutoEventWireUp со значением true.Не пробовал.
  • Страница или главная страница содержит <img src="#"> or <img src="">

Ответы [ 2 ]

3 голосов
/ 07 марта 2012

Я уверен, что атрибут background для элемента table ожидает URL-адрес изображения. (Я не думаю, что это даже правильный атрибут для этого элемента, или, по крайней мере, я никогда не видел, чтобы он использовался. Может иметь поведение, специфичное для браузера.)

Если это так, то этот вид имеет смысл. В конце вопроса вы отмечаете:

  • Страница или главная страница содержит <img src="#"> или <img src="">

Так что, похоже, что здесь происходит. Браузер интерпретирует этот цветной тег как URL-адрес и отправляет запрос на ресурс сервера, чтобы попытаться получить его, поскольку хэш-URL-адрес по умолчанию по умолчанию использует текущую страницу. В теге привязки он просто перемещает фокус на этот тег на странице, но в теге ссылки на ресурс (например, img, но в этом случае атрибут на table, который ожидает URL), он должен сделать еще один запрос.

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

Действительно, элемент table, похоже, официально не имеет атрибута background. По крайней мере не в HTML 4 или HTML 5 .

0 голосов
/ 07 марта 2012

Атрибут background не принимает шестнадцатеричные цвета в качестве входных данных.Вы должны использовать CSS в любом случае.Вместо этого используйте background-color свойство CSS.

См. Эту скрипку, чтобы атрибут background не работал.

http://jsfiddle.net/SrEDB/

И это работает со свойством CSS.

http://jsfiddle.net/SrEDB/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...