Я немного озадачен этим вопросом, и надеюсь, что некоторые из вас, гуру, смогут пролить свет на мою проблему ...
Я разработал веб-сайт с поддержкой AJAX, который отлично работает в IE, Chrome и Firefox в течение года или около того. Я использую таймер для проверки входящих сообщений каждые 30 секунд, и это обновляет панель обновления, отображающую потенциальные новые сообщения.
Теперь несколько пользователей из Firefox жалуются на то, что страница обновляется каждые 30 секунд! Я сам не могу воспроизвести это поведение, но, учитывая описание «30 секунд», я проклял свое решение Таймера как виновника.
Но сейчас я сам сталкиваюсь с этой ошибкой, но не в Firefox, а в Google Chrome! (И только на одном из двух моих компьютеров!) Каждые 30 секунд страница перезагружается! Но я обнаружил, что это относится не только к таймеру, потому что все другие асинхронные обратные передачи на сервер в UpdatePanels также перезагружают всю страницу.
Эта ошибка никогда не возникала в Internet Explorer (насколько мне известно).
Как я уже сказал, это относится не только к обратной передаче по таймеру, но и, если кому-то это интересно, код такой:
<asp:Timer runat="server" ID="MailCheckTimer" Interval="30000" OnTick="MailChecker_Tick"></asp:Timer>
<asp:UpdatePanel runat="server" ID="MailCheckerUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<div class="newmail_box" runat="server" id="newmail_box">
<!-- Content stripped for this example -->
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="MailCheckTimer" />
</Triggers>
</asp:UpdatePanel>
В других местах сайта я вызываю клиентскую функцию __doPostBack
напрямую из JavaScript по отношению к UpdatePanel. Обычным поведением для этого вызова является обновление ссылочной UpdatePanel некоторым содержимым, но теперь в Chrome это обновляет всю страницу! (но опять же не последовательно и никогда в IE)
Даже самые основные операции UpdatePanel, такие как обновление содержимого после нажатия кнопки (внутри панели), вынуждают страницу полностью перезагрузиться:
<asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_Click"></asp:Button>
И чтобы еще больше меня мучить, я испытываю это только на своем общедоступном веб-сайте, а не в своей локальной среде разработки, что делает утомительным делом поиск истинной причины для меня! (
Есть идеи, почему это происходит? Почему так непоследовательно? Это связано с моим UpdatePanel-дизайном? Или какие-то настройки безопасности в Firefox / Chrome, которые предотвращают некоторые асинхронные обратные вызовы UpdatePanel?
Любая помощь или идея высоко ценится!