2014-01-09 190 views
3

我們有一個相當大的ASP.NET MVC站點,需要6秒來顯示頁面。我使用了Glimpse和MiniProfier,並且都告訴我渲染視圖是罪魁禍首(需要5.9秒)。控件和視圖都被稱爲「列表」。 enter image description here渲染視圖時ASP.NET MVC 4很慢

我刪除了_Layout.cshtml和List.cshtml的整個標記,但仍然需要6秒加載頁面!我查看了global.asax和App_start中的所有類,並且沒有發現任何錯誤。

當我看着Glimpse時,它說「ViewResult.ExecuteResult()」運行5.9秒。我認爲這個方法被調用來渲染視圖,但我很驚訝,因爲我沒有任何渲染,因爲我刪除了所有的標記。

任何人都可以請直接指導我如何診斷本網站?

回答

3

如果我們談論List,我可以假設(因爲我們沒有任何代碼),它是通用的,IEnumerable。這意味着它是懶惰加載的。當你創建一個列表(或從某個地方獲取)時,你不需要實際調用數據庫/外部源。但是當你訪問屬性時,調用就會被執行,這就是爲什麼渲染列表需要很長時間。

所以,解決方案是你不需要關注列表的呈現,而是關注這個列表的數據源。數據來自哪裏?例如,如果您使用數據庫,則可能需要創建索引以提高查詢的選擇速度。

+0

謝謝你,你的回答幫了我堆:) – Aref