我們遇到了一個小問題,通過Ajax加載多個部分視圖,我無法縮小範圍。通過ajax減緩mvc部分視圖的加載
頁面加載6個部分視圖點擊一個按鈕。
我們最初的部分視圖是由服務器在單個頁面上呈現的,但這意味着處理系列運行並且頁面沒有很快返回。
因此,我創建了一點點的javascript,它可以運行並異步ajax請求來刷新它們(請注意,部分視圖url在標記中呈現以使這更容易,暫時)。現在
function refreshAllPartials() {
$('div.partial').each(function() {
var partialView = $(this);
var partialViewUrl = $(partialView).attr('partialUrl');
var parent = $(partialView).parent();
$(parent).empty();
$.ajax({
url: partialViewUrl,
type: "GET",
async: true,
success: function (response, textStatus, jqXHR) {
$(parent).html(response);
}
});
});
}
,問題是,雖然局部視圖請求的每個大約需要0.7秒,返回,從Firebug的輸出顯示了一些不同的東西(使用招選中)。
從小提琴手的輸出是在幾毫秒內保持一致,但是螢火蟲輸出給用戶的視覺效果,彷彿不斷變化。
我猜想有一些我錯過了javascript的工作方式,以及如何渲染的作品,但也許我只是做錯了什麼?
我正在使用ASP.NET MVC3,但是,我不確定它是否相關,因爲Fiddler顯示IIS正在及時返回數據。
這是在生產服務器上嗎?否則,您的開發服務器可能無法有效處理這麼多(幾乎是併發)的請求。爲什麼不直接從單個請求中提供JSON對象,從中可以更新所有的部分? – osahyoun
我們已經在性能服務器上嘗試過了,它也是一樣的。這個問題與處理仍然需要連續運行的問題相同,我們會在顯示任何部分之前等待所有部分的數據返回。 – Martin