前言:
此刻姐妹们对“ajax访问aspx”可能比较着重,咱们都需要学习一些“ajax访问aspx”的相关内容。那么小编也在网上网罗了一些对于“ajax访问aspx””的相关知识,希望咱们能喜欢,我们快快来学习一下吧!在本文中,您将学习如何使用AJAX来检测在调用另一个异步请求时是否仍处理异步请求。通过这样做,我们可以通知用户,并允许第一个请求在启动另一个请求之前完成。
为了演示这一点,我们将创建两个UpdatePanels,每个UpdatePanels显示当前的日期和时间以及一个按钮。每个按钮将在单击时更新自己的UpdatePanel。但是,当第一个按钮被点击时,我们将有意地使该过程需要3秒钟来完成,给我们足够的时间点击第二个按钮进行测试。当第一个仍在处理时点击第二个按钮,我们应该被通知一个进程仍然是活动的,不允许第二个进程启动。
我们先来添加ScriptManager和两个UpdatePanels:
<form id =“form1”runat =“server”>
<asp:ScriptManager ID =“SM1”runat =“server”/>
<asp:UpdatePanel ID =“UP1”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
</的ContentTemplate>
</ ASP:的UpdatePanel>
<br /> <br />
<asp:UpdatePanel ID =“U2”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
</的ContentTemplate>
</ ASP:的UpdatePanel>
<br /> <br />
</ FORM>
请注意,我们将两个面板上的UpdateMode设置为Conditional。这是因为我们不希望它们同时更新 - 每个按钮只能更新自己的UpdatePanel。
让我们继续添加按钮和当前时间到UpdatePanels:
<asp:UpdatePanel ID =“UP1”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
<%= DateTime.Now.ToString()%>
<br />
<asp:Button ID =“btn_GetTime1”runat =“server”Text =“Get Time(1)”OnClick =“btn_GetTime1_Click”/>
</的ContentTemplate>
</ ASP:的UpdatePanel>
<br /> <br /> <asp:UpdatePanel ID =“U2”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
<%= DateTime.Now.ToString()%>
<br />
<asp:Button ID =“btn_GetTime2”runat =“server”Text =“Get Time(2)”/>
</的ContentTemplate>
</ ASP:的UpdatePanel>
现在在代码背后,在第一个按钮的点击事件中,我们会故意让线程睡眠3秒钟。喜欢这个
使用System.Threading;
..
protected void btn_GetTime1_Click(object sender,EventArgs e)
{
Thread.sleep代码(3000);
}
为了使请求更加可视化,我们还可以在组合中添加一个UpdateProgress。当请求正在进行时,这将显示:
<asp:UpdateProgress ID =“UPr1”runat =“server”AssociatedUpdatePanelID =“UP1”>
<ProgressTemplate>
<br /> <br />
请稍候..
</ ProgressTemplate>
</ ASP:的UpdateProgress>
我们还将包括一些JavaScript来检查Async PostBack是否正在进行中。为此,请添加以下脚本:
<script type =“text / javascript”>
var instance = Sys.WebForms.PageRequestManager.getInstance();
instance.add_initializeRequest(instance_initializeRequest);
function instance_initializeRequest(sender,args){
if(instance.get_isInAsyncPostBack()){
alert('仍然处理请求,请稍候..)
args.set_cancel(真);
}
}
</ SCRIPT>
ASPX页面将如下所示:
展开| 选择| 包裹| 行号
<BODY>
<form id =“form1”runat =“server”>
<asp:ScriptManager ID =“SM1”runat =“server”/>
<asp:UpdatePanel ID =“UP1”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
<%= DateTime.Now.ToString()%>
<br />
<asp:Button ID =“btn_GetTime1”runat =“server”Text =“Get Time(1)”OnClick =“btn_GetTime1_Click”/>
</的ContentTemplate>
</ ASP:的UpdatePanel>
<asp:UpdateProgress ID =“UPr1”runat =“server”AssociatedUpdatePanelID =“UP1”>
<ProgressTemplate>
<br /> <br />
请稍候..
</ ProgressTemplate>
</ ASP:的UpdateProgress>
<br /> <br />
<asp:UpdatePanel ID =“U2”runat =“server”UpdateMode =“Conditional”>
<的ContentTemplate>
<%= DateTime.Now.ToString()%>
<br />
<asp:Button ID =“btn_GetTime2”runat =“server”Text =“Get Time(2)”/>
</的ContentTemplate>
</ ASP:的UpdatePanel>
<br /> <br />
</ FORM>
</ BODY>
</ HTML>
<script type =“text / javascript”>
var instance = Sys.WebForms.PageRequestManager.getInstance();
instance.add_initializeRequest(instance_initializeRequest);
function instance_initializeRequest(sender,args){
if(instance.get_isInAsyncPostBack()){
alert('仍然处理请求,请稍候..)
args.set_cancel(真);
}
}
</ SCRIPT>
标签: #ajax访问aspx #ajax做异步处理