亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP, jQuery (AJAX) - 刷新信息

PHP, jQuery (AJAX) - 刷新信息

PHP
墨色風雨 2022-12-03 10:43:27
刷新信息,只有在它是新的時候,而不是總是。僅在與響應不同時更新數據。<script>  $(document).ready(function(){    setInterval(function() {      $.ajax({        type : "POST",        url : "steam.php",        cache : false,        success : function(response) {          var parsedResponse = $.parseJSON(response);          $("#Display, [class='card-title display']").html(parsedResponse.display, parsedResponse.display);          $("#AvatarFull, #AvatarSmall").attr("src", parsedResponse.avatar, parsedResponse.savatar);          $("#Steam").attr("value", parsedResponse.display);        }      });    }, 1000)  });</script>
查看完整描述

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。



查看完整回答
反對 回復 2022-12-03
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號