В HTML-коде, сгенерированном ReportViewer, есть следующая строка кода (я пытался сделать ее более читабельной, удалив лишнюю информацию)
setTimeout("frames['ReportViewer1TouchSession0'].location.replace('/Reserved.ReportViewerWebControl.axd?...&TimerMethod=KeepAliveMethodReportViewer1TouchSession0...", 0);
function KeepAliveMethodReportViewer1TouchSession0() {
setTimeout("frames['ReportViewer1TouchSession0'].location.replace('/Reserved.ReportViewerWebControl.axd?...TimerMethod=KeepAliveMethodReportViewer1TouchSession0....", -1703027296);
}
Когда вызывается Reserved.ReportViewerWebControl.axd, он делает запрос GET, который возвращает следующий HTML:
<html><body><script type="text/javascript">parent.KeepAliveMethodReportViewer1TouchSession0();</script
По сути, это становится рекурсивной функцией, и поскольку KeepAliveMethodReportViewer1TouchSession0 вызывает установленное время ожидания с отрицательным значением времени ожидания, в Firefox оно вызывается немедленно, примерно через 10 секунд Firebug регистрирует более 150 запросов GET за одну минуту, регистрируется более 700 запросов. Это заставляет кнопку Stop Firefox и курсор мерцать как сумасшедший.
Если кто-то знает, как отрегулировать время ожидания запроса keepalive, чтобы оно было нормальным, я был бы очень признателен за вашу помощь.