gpt4 book ai didi

javascript - 如何使用 Ajax 刷新特定标签?

转载 作者:行者123 更新时间:2023-11-30 20:23:23 26 4
gpt4 key购买 nike

我尝试使用 AJAX 和间隔每 5 秒更新一次标签,但实际上它只有在我手动点击刷新按钮时才有效。在不重新加载页面的情况下,该值不会更改。

我正在使用网络表单。

客户端:

JavaScript:

    setInterval(function () {
function GetStatus() {
$.ajax({
type: "POST",
url: "RunningConsolePage.aspx/GetStatus",
data: '{name: "' + $("#<%=lblStatus.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
$("#<%=lblStatus.Text=GetStatus()%>")
}
}, 5);

HTML:

<asp:Button ID="btnQArun" Text="QA" OnClick="btnQArun_Click" CssClass="btn btn-info btnSize" OnClientClick="Confirm('QA')" runat="server" />
<asp:Label ID="lblStatus" Text="Status" runat="server"/>

服务器端:

[System.Web.Services.WebMethod]
public static string GetStatus()
{
Random random = new Random();
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return new string(Enumerable.Repeat(chars, 11)
.Select(s => s[random.Next(s.Length)]).ToArray());
}

最佳答案

所以把你的方法放在interval外面,然后在interval里面调用。而且它以毫秒为单位,所以 5 并不意味着 5 秒,它代表 5 毫秒。

<script>
setInterval(GetStatus, 5000);

function GetStatus() {
$.ajax({
type: "POST",
url: "RunningConsolePage.aspx/GetStatus",
data: '{name: "' + $("#<%=lblStatus.ClientID%>")[0].value + '" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
$("#<%=lblStatus.ClientID%>").text(response.d);
}
</script>

提示:1000 毫秒 = 1 秒。

同时检查 OnSuccess 方法中的选择器是错误的。改变它,它就会起作用。

还可以在这里找到更多有用的信息:https://javascript.info/settimeout-setinterval

干杯,

关于javascript - 如何使用 Ajax 刷新特定标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51208502/

26 4 0