Report Viewer 14 你不知道的事情
更新20220817 因緣際會突然在網路搜尋看到自己文章,發現了這一篇,補上解決方法
*******************************************************************************************
故事是這麼開始的,公司買了VS 2017,所以在開發web report viewer 當然就會很自然的想要用用新的版本
vs2017最新的Report viewer 是14版本
其實在開發的過程中都沒有什麼問題,多瀏覽器完美支援~而且也不在只有IE才能列印了
當一切都很順利的開發完也上線了,USER卻反應開報表很"慢",心想要點時間載入報表也正常
我自己測試也大概要3~5秒完全顯示資料。但到了USER的電腦實際測試卻發現 竟然要1X秒,踢阿。
難怪USER要崩潰
因為USER的電腦是沒有對外網路,也就是只有內網無法對外連線。
一開始當然不會去懷疑report有去對外連線,一直都在檢查我的程式,看看是不是有引用什麼Plugin才會這麼慢。
後來放棄了,請USER先忍耐吧。我在找找看怎麼解決。
不過後來因為東西多,短時間沒有找到就先放棄了。
過段時間USER上簽說申請開放對外網路,理由:需要對外網路報表才會正常
逼的我不得再次查找原因。
這次想說那我來看看監控看看網路流量這段看看到底是卡在哪裡。
意外的發現,竟然有一支我不知道的js是需要對外的。
所以只要是沒有對外網路的電腦,每次在載入報表時都需要等這個js timeout 才會繼續執行
萬萬沒想到竟然是被XX表了......
report viewer 14的dll 透過.axd載入多個js跟css(我猜應該是為了要符合RWD及解決多瀏覽器的操作)
其中一支js(RSTelemetry.js)會去呼叫一支需要連外網的js(ai.0.js),用了各種方法,包含載入DOM後想要去串改URL都沒有成功。
官網也沒有找到關於這一部分,該怎麼設定或者是怎麼關閉不要讓這支js載入的方法。
最後只好放棄使用14版本,降版回11了....速度回到了3~5秒,一切都正常了。
網路上幾乎都沒有提到這個問題,也許是大家都是有開放對外網路~"~
吃了悶虧,讓我覺得太新的東西不要搶先使用的好....自己玩玩可以但用在公司的專案上可能還需要再等等
寫文章並不為了什麼,只是撰寫文章的過程中,可以使我的去思考更多層面的東西,寫的過程中也可以再次回味學習到的東西,並深刻的印象在腦中。
當你還在找這些資訊學習時,我想安逸的生活還不適合你,一起努力吧。