Jeśli używasz Menedżera raportów, takiego jak ja (wersja 2005), niewiele można zrobić o formantu ReportViewer. (czy istnieje?) Istnieje jednak alternatywa:
Rozwiązanie Phil skutecznie dezaktywuje kod uruchamiany przez zdarzenie onload elementu iframe.W SSRS 2005 jest to iframe z id „ctl140TouchSession0”:
<iframe name="ctl140TouchSession0" id="ctl140TouchSession0" onload="if (frames['ctl140TouchSession0'].location != 'javascript:\'\'') frames['ctl140TouchSession0'].location.replace('javascript:\'\'');" src="javascript:''" style="position:absolute;width:0;height:0;border-width:0;visibility:hidden;">
Można zobaczyć kod przestępstwa w przypadku onload - kod Render wyłącza if dodając „& & false” do stanu.
Następujący javascript wykonuje to samo, opróżniając po załadowaniu strony, zatrzymując pętlę.
(Add to na dole [MSSQL usług Reporting Folder] \ ReportManager \ js \ ReportingServices.js)
// CUSTOMIZATIONS
addLoadEvent(customize);
//some browser-independent onload-adder I pulled from somewhere
function addLoadEvent(fn)
{
if (window.addEventListener)
window.addEventListener('load', fn, false);
else if (window.attachEvent)
window.attachEvent('onload', fn);
}
function customize()
{
//the actual fix.
//check first, we may be in a page without a reportviewer
if(document.getElementById('ctl140TouchSession0'))
document.getElementById('ctl140TouchSession0').onload = "";
}
Uwaga: Nie jestem pewien, co zdarzenie onload faktycznie robi, a jeśli tak to usunięcie zabija inne funkcje. Powinien istnieć jakiś sposób zmiany obciążenia w taki sam sposób, jak rozwiązanie Phila lub poprawka zależna od przeglądarki, ale to działa, a ja nie napotkałem jeszcze problemów w IE.
Nadal nie ma akceptowalnych odpowiedzi lub rozwiązań, co jest wyraźnie czymś w kontrolce ReportViewer w trybie lokalnym, które to powoduje. Nadal nie udało się znaleźć odpowiedzialnej części :( – Phil
Również dzieje się w Safari dla Windows - pachnie jak błąd WebKit do mnie! –
Używam go w chrome 19 i działa dobrze normalnie, ale kiedy otwieram narzędzia programistyczne (Inspect Element), aby sprawdzić jego klasy css, a następnie staje się głodny pamięci i strona internetowa nienormalnie zaczyna zużywać setki MB do 1,5 GB i zawiesza się.Musimy ręcznie zabić stronę za pomocą Menedżera zadań. – MaxRecursion