Этого можно достичь, сохранив ответ в переменной, а затем сравнив новый ответ. Если они одинаковые, не выполняйте никаких действий.
Также обратите внимание, что html()
и attr()
принимают только один и два аргумента соответственно, поэтому последний в каждом вызове может быть удален. В любом случае предпочтительнее использовать prop()
вместо 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.