Перезапись URL-адресов, циклы загрузки страницы - PullRequest
3 голосов
/ 29 мая 2011

Я использую Intelligencia UrlRewriter для применения перезаписи URL.

Я взял page1.aspx и использовал событие OnClick кнопки и сделал Response.Redirect до page2.aspx,Все работает нормально, если я тестирую с этими двумя примерами страниц.

Затем я применил некоторые стили и javascript к page2.aspx.Когда я нажимаю ту же кнопку на page1.aspx и ставлю точку останова на функцию page2.aspx.cs page_load, я заметил, что функция page_load зацикливается несколько раз, и она циклически повторяет и загружает все вызовы базы данных несколько раз.

Применение IsPostback не помогло.Затем я удалил CSS и JS, тогда все в порядке. Нужен ответ, почему эта page_load функция повторяется несколько раз.

Ответы [ 3 ]

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

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

Я переписывал:

domain.com/article/12345/title-here 

Чтобы стать:

domain.com/article.aspx?ID=12345

Проблемабыло, было 2 изображения с относительными путями:

  EG. images/fb.jpg
      images/tw.jpg

Записав значение в Request.RawUrl.ToString (), я смог увидеть, что браузер запрашивает следующие изображения:

 domain.com/article/12345/images/fb.jpg

 domain.com/article/12345/images/tw.jpg

Хотя эти файлы не существуют, URL-адрес все еще удовлетворяет правилу перенаправления.

Таким образом, переписываем URL-адрес:

domain.com/article.aspx?ID=12345

Что объясняет, почему моя страница загружалась три раза,Один раз для HTML и один раз для каждого изображения.

Изменены значения src изображения на абсолютный путь, и проблема была решена.

0 голосов
/ 26 ноября 2011

Циклы загрузки страницы происходят и при использовании готовой реализации ASP.Net. Один из способов проверить и сократить накладные расходы на обработку - это проверить объект httpContext, чтобы увидеть, что представляет собой запрашиваемый в данный момент объект. Если объект не соответствует ожидаемому - изображение, файл .js, таблица стилей и т. Д. Выручают из обработки страницы.

0 голосов
/ 29 мая 2011

Вы должны установить правила перезаписи для CSS и JS директории.Ваша страница вызывается снова и снова, потому что по запросу css и JS файлов ваша страница обслуживается.установить правила перезаписи для вашего CSS и JS в соответствии с вашей системой каталогов.

Редактировать не уверен, что может работать

<rewrite url="^(/.+(\.gif|/.+\.png|\.jpg|\.ico|\.pdf|\.css|\.js|\.asmx|\.axd|\.flv|\.swf)(\?.+)?)$" to="$1" processing="stop" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...