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

时间:2018-07-06 10:34:33

标签: javascript asp.net ajax webforms

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

我正在使用Webforms。

客户端:

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());
        }

1 个答案:

答案 0 :(得分:1)

因此将您的方法放在间隔之外,然后在间隔中调用它。也是微秒,所以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 ms = 1秒。

还要在OnSuccess方法中签出选择器,这是错误的。更改它,它将起作用。

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

干杯