我有一個JavaScript函數,我試圖添加到我的文檔中,使其具有實時更新的感覺。這是對我的MVC控制器的AJAX調用,它返回一個JSON結果並將它添加到頂部的列表中,然後隱藏最後一個li,然後刪除最後一個li。Javascript功能正常工作8次,然後每隔一段時間
問題是,該功能完美地工作8次,然後變得棘手。在前8次之後,該功能只隱藏列表中的最後一項,每隔一次將其添加到頂部。因此,第一個8次運行後,我的名單不斷增加1裏的腳本每隔運行:
這裏是我的功能:
<script type="text/javascript">
$(document).ready(function() {
function latestBranch() {
$.getJSON("Home/LatestWristband", null, function (html) {
var showHideSpeed = 200;
var firstLI = $("#recentBranches ul li").first();
if (firstLI.text() !== html) {
firstLI.before('<li>' + html + '<\li>');
$("#recentBranches ul li").first().hide().show(showHideSpeed);
$("#recentBranches ul li").last().hide(showHideSpeed/4,
function() {
$("#recentBranches ul li").last().remove();
});
}
});
};
setInterval(latestBranch, 500);
});
</script>
我已經試過幾件事情要得到這個工作。我的第一個想法是,間隔比腳本擺脫最後一個列表項目更快,但我已經測試了這個間隔爲5000的get,並且1000爲隱藏/顯示元素,這應該提供一個至少在下一次通話之前超過3000ms。我也試圖改變這一點:
$("#recentBranches ul li").last().hide(showHideSpeed/4,
function() {
$("#recentBranches ul li").last().remove();
});
到:
$("#recentBranches ul li").last().remove();
但是我8次後得到了同樣的問題。看起來,雖然它進入了這種節奏,每隔一段時間只能工作一次,但它保持不變。我曾試圖尋找aroudn,但我似乎無法找到任何可以解釋這些症狀......
有人曾建議我用的setTimeout與替代函數的遞歸選項完成後,自稱,推遲了。我確實嘗試過,但也遇到同樣的問題。我已清除瀏覽器緩存,並驗證瀏覽器中的腳本是我剛剛更改的腳本。 – tostringtheory