1 回答

TA貢獻1808條經驗 獲得超4個贊
您可以通過將響應存儲在變量中然后比較新響應來實現此目的。如果它們相同,則不要執行任何操作。
另請注意,html()andattr()僅分別接受一個和兩個參數,因此可以刪除每次調用中的最后一個參數。在任何情況下,首選做法是使用prop()over attr()。此外使用val(), 不attr()更新value控件。嘗試這個:
$(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)
});
綜上所述,我強烈建議您為此使用觀察者模式而不是 AJAX 輪詢。這是因為它對服務器資源的壓力要小得多,您可以將其配置為僅在有新信息可用時發送更新。如果您想了解更多有關此研究的 Websockets 和 SignalR。
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報