1 回答

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以通過將響應(yīng)存儲(chǔ)在變量中然后比較新響應(yīng)來(lái)實(shí)現(xiàn)此目的。如果它們相同,則不要執(zhí)行任何操作。
另請(qǐng)注意,html()andattr()僅分別接受一個(gè)和兩個(gè)參數(shù),因此可以刪除每次調(diào)用中的最后一個(gè)參數(shù)。在任何情況下,首選做法是使用prop()over attr()。此外使用val(), 不attr()更新value控件。嘗試這個(gè):
$(document).ready(function() {
let lastResponse;
setInterval(function() {
$.ajax({
type: "POST",
url: "steam.php",
cache: false,
success: function(response) {
if (response != lastResponse) {
var parsedResponse = $.parseJSON(response);
$("#Display, [class='card-title display']").html(parsedResponse.display);
$("#AvatarFull, #AvatarSmall").prop("src", parsedResponse.avatar);
$("#Steam").val(parsedResponse.display);
lastResponse = response;
}
}
});
}, 1000)
});
綜上所述,我強(qiáng)烈建議您為此使用觀察者模式而不是 AJAX 輪詢。這是因?yàn)樗鼘?duì)服務(wù)器資源的壓力要小得多,您可以將其配置為僅在有新信息可用時(shí)發(fā)送更新。如果您想了解更多有關(guān)此研究的 Websockets 和 SignalR。
- 1 回答
- 0 關(guān)注
- 120 瀏覽
添加回答
舉報(bào)