我正在使用asp.NET mvc3的應用程序。 我創建了一個局部視圖,我在視圖中調用了這個局部視圖,這樣我就可以在不重新加載頁面的情況下更新一個div。 我使用setTimeout(但我也試過setInterval)來定義刷新時間。 問題是它不工作,它隨機刷新div,沒有遵循我設置的時間,也沒有我能理解的邏輯,有時會刷新它兩次,有時它會等待,但不會更長我設定的時間。 這是部分視圖的代碼。在視圖中,我只是調用局部視圖。SetTimeout更新MVC3中的部分視圖隨機執行
<script type="text/javascript">
var st;
function updateDiv() {
st = null;
clearTimeout(st);
console.log("posting");
$.post('@Url.Action("RefreshSelfUpdatingPartial")', function (data) {
$('#SelfUpdatingPartialDiv').hide().slideDown("slow").html(data);
//wait 15 seconds
st = setTimeout(updateDiv, 15000);
});
}
updateDiv();
</script>
<div id="SelfUpdatingPartialDiv">
test
</div>
我只是實現了這個邏輯: http://stackoverflow.com/questions/5866326/updatepanel-in-razor-mvc-3/5893922#5893922 要im在MVC3中補充一個「UpdatePanel」。 – Attila
好吧,但是說(本質上)「我從別處複製了這段代碼」實際上並沒有解決我在第一段中提到的問題,特別是因爲你已經說過它不起作用。換句話說,當你的'.post()'回調執行'data'參數中實際返回的內容嗎?請使用'console.log(data);'找出並找回我。 – nnnnnn
好現在我明白你在問我什麼, 我使用了console.log(data),它返回了我在第一篇文章中發佈的所有確切代碼,也許這是問題所在?但它只是刷新分區爲什麼它應該以嵌套的方式複製自己? – Attila