php jquery异步更新数据,PHP,jQuery(AJAX)-刷新信息

仅在新信息时才刷新信息,并非总是如此。

仅在与响应不同时更新数据。

$(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)

});

1

投票

您可以通过将响应存储在变量中,然后比较新的响应来实现。如果它们相同,则不要执行任何操作。

还请注意,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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值