Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка под ASP.NET > page_load загружается дважды |
Автор: RobinHoodPHD 16.8.2011, 21:47 | ||
Доброго времени суток! Столкнулся с такой проблемой - Page_load отрабатывает дважды: т.е. если поставить на ней точку останова, то она вызовется дважды при обращении к странице. Тестирую на девелоперском сервере (тот что встроен в 2010 студию). Первым делом я отрубил AutoEventWireup причем как на самой странице, так и на мастер странице. - Не помогло. Гугл и форумы говорят 5 вещей: 0. Так и должно быть - учи матчасть. (имхо полный бред) 1. Отключи AutoEventWireup. (отключил - не помогло) 2. Это из-за того что запускаешь на девелоперском сервере (хорошо если так, но хотелось бы знать точно) 3. Все из за какого-нибудь контрола типа Gridа (нифига, страница пустая вообще) 4. Из-за того, что некоторые ресурсы не были найдены (АГА!) Вот 4 как раз и помогло. В мастер-пэйдже был контрол с картинкой с пустым свойством src. Как только я подсунул туда существующую картинку и еще добавил иконку сайта "favicon.ico" - page_load начал вызываться один раз. Внимание! Вопрос: Получается, что если вдруг каким-то чудом не найдется какой-нибудь ресурс при запросе (а это имхо может быть запросто при реальной работе веб-приложения) то страница начнет грузится дважды - дважды подгрузятся скрипты, дважды пройдет обращение к базе - результат: ошибки, скорость падает. Есть ли способ решить эту проблему так, чтобы даже при отсутствии какого либо ресурса page_load отрабатывал один раз??? Спасибо за Ваши ответы. PS: -- Прошло часа 3 и я дописал сюда вот это: Я добавил пользовательский контрол на страницу и все опять стало плохо - страница стала опять грузится два раза не смотря ни на какие там src и favicon.ico. Убив еще три часа, пришел к выводу, что в принципе двойная загрузка page_load мне не мешает (кроме того что это мне непонятно) Основная проблема в том, что у меня дважды вызывается клиентская функция, привязанная к $('document').ready. Вот это в мое сознание вообще никак не влезает - ладно на сервере дважды вызвалась процедура, но почему браузер дважды запустил событие загрузки страницы? При этом я успешно избавился от этого таким вот извращенным образом:
|