gpt4 book ai didi

javascript - Ajax 请求后 setInterval 停止

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

我正在使用 Asp.net MVC,我希望我的局部 View 每隔一段时间刷新一次,直到我发出一个不相关的 Ajax 请求,它才会停止。

这里有一些简化的片段来说明这个问题。

在 AjaxRefresh.js 中:

function ajaxRefresh()
{
var f = $("#AjaxForm");
$("#AjaxLoading").show();
$.post(f.attr("action"), f.serialize(), function (context) {
$("#AjaxDiv").html(context);
$("#AjaxLoading").hide();
});
}
setInterval(ajaxRefresh, 1000);

在 Index.aspx 中:

<script type="text/javascript" src="../../Scripts/AjaxRefresh.js"></script>
<div id="AjaxDiv">
<% Html.RenderPartial("Computers", Model, ViewData); %>
</div>

这在 Computers.ascx 中:

<% Ajax.BeginForm("Index", new { groupName = Model.Name }, new AjaxOptions() { HttpMethod = "Post", LoadingElementId = "AjaxLoading", UpdateTargetId = "AjaxDiv" }, new { id = "AjaxForm" }); Html.EndForm();%>

<%= Ajax.ActionLink("Send", "Index", new { groupName = Model.Name, data="blah" },
new AjaxOptions() { HttpMethod="Post", LoadingElementId="AjaxLoading", UpdateTargetId="AjaxDiv" }) %>

如果您单击“发送”链接,一切仍然有效,但页面会自动停止刷新。我已尝试订阅 ajax 事件,但 Sys.WebForms.PageRequestManager.getInstance() 未定义。

最佳答案

我不确定为什么会发生这种情况,但我在过去使用 jQuery Ajax 刷新和 setInterval 时遇到过类似的问题。最后,我切换到一个重复的 setTimeout 并且没有任何问题:

function onLoad() {
setTimeout(ajaxRefresh, 1000);
}

function ajaxRefresh()
{
var f = $("#AjaxForm");
$("#AjaxLoading").show();
$.post(f.attr("action"), f.serialize(), function (context) {
$("#AjaxDiv").html(context);
$("#AjaxLoading").hide();
});
setTimeout(ajaxRefresh, 1000);
}

关于javascript - Ajax 请求后 setInterval 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com