gpt4 book ai didi

jquery - 使用 JQuery 的 AJAX 阻塞问题

转载 作者:行者123 更新时间:2023-12-01 04:32:17 24 4
gpt4 key购买 nike

再试一次。您认为我没有清楚地表达问题。

遇到大问题了。与我签约的公司要求我使用 AJAX 将网站转换为延迟加载。为此,我使用 Page 方法来加载控件。 Javascript 看起来像这样...像冠军一样工作!

 $(document).ready(function() {

var clientID = '#' + '<%= BackUpPower.DivBackUpPower.ClientID %>'

if ($(clientID)) {

$.ajax({
type: "POST",
url: "Dashboard.aspx/GetBackUpControl",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 15000,
success: function(result) {
$(clientID).css({ "display": "none" });
$(clientID).removeClass('loading');
$(clientID).attr('innerHTML', result.d);
$(clientID).fadeIn("slow");
},
error: function(xhr) {
//alert("GetBackUpControl failed");
}
});
}

});

服务器端代码如下所示...

[Web方法]

public static String GetBackUpControl()
{

Page page = new Page();
UserControls_BackupPowerForm ctl = (UserControls_BackupPowerForm)page.LoadControl("~/UserControls/BackupPowerForm.ascx");
ctl.ID = "BackupPower";
page.Controls.Add(ctl);

ctl.HostPage = "Dashboard";
ctl.ActiveTimeRange = TimeRange.LastMonth;

try
{
ctl.DataBindChart();
}
catch (Exception caught)
{
LoggingAdapter.LogError(caught.Message, "Error Generating Chart", caught);
return String.Empty;
}

StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);

return writer.ToString();
}

我遇到的问题是,当长时间运行的回调正在进行并且用户尝试通过单击超链接切换页面时,系统在执行此操作之前会等待很长时间。单步执行代码,我看到回调在新页面请求和调用的 JQuery 错误处理程序上正确中止,但似乎新页面请求仍在等待回调完成。如果没有回调正在进行,则新页面请求是即时的。有人知道这是怎么回事吗?

最佳答案

感谢您的帮助。事实证明,问题与 asp.net 序列化访问 session 的页面请求以防止更新冲突的方式有关。在页面指令中将 session 设置为“只读”解决了问题。但是,如果页面写入 session 变量,那么这将是一个问题。解决方法是交叉发布到另一个允许 session 更新的页面。

关于jquery - 使用 JQuery 的 AJAX 阻塞问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1039612/

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