每次加载页面时都运行javascript
在我的web应用程序中,我有一个包含加载条的模式弹出窗口。我让它出现在任何我知道需要几秒钟才能执行的命令上,比如点击按钮等等 除了一个复杂的问题外,它目前工作正常,运行它的内部web服务器非常糟糕,根据用户的数量,它可以在导航到页面等简单任务上减慢速度 如何使加载模式在每次页面考虑执行某项操作时都出现,而不必对每个可能的场景进行硬编码 我的web应用程序正在使用包含模式代码的母版页 谢谢 脚本每次加载页面时都运行javascript,javascript,c#,jquery,asp.net,twitter-bootstrap,Javascript,C#,Jquery,Asp.net,Twitter Bootstrap,在我的web应用程序中,我有一个包含加载条的模式弹出窗口。我让它出现在任何我知道需要几秒钟才能执行的命令上,比如点击按钮等等 除了一个复杂的问题外,它目前工作正常,运行它的内部web服务器非常糟糕,根据用户的数量,它可以在导航到页面等简单任务上减慢速度 如何使加载模式在每次页面考虑执行某项操作时都出现,而不必对每个可能的场景进行硬编码 我的web应用程序正在使用包含模式代码的母版页 谢谢 脚本 function ShowLoading() { $('#modalLoading').mod
function ShowLoading() {
$('#modalLoading').modal({ backdrop: 'static', keyboard: false, show: true });
}
function HideLoading() {
$('#modalLoading').modal('hide');
}
ASPX
<div id="modalLoading" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<h2>
Please Wait...</h2>
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" style="width: 100%">
</div>
</div>
</div>
</div>
</div>
</div>
在javascript中设置一个
BeginRequestHandler
和一个EndRequestHandler
,如下所示:
$(document).ready(function () {
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});
function BeginRequestHandler(sender, args) {
var postBackId = args._postBackElement.id;
// Here you can add some exceptions if you want
if (postBackId != "control_exception_1" && postBackId != "control_exception_2") {
ShowLoading();
}
}
function EndRequestHandler(sender, args) {
HideLoading();
}
最小的ASP.NET控件:服务器上运行的表单
、脚本管理器和更新面板
。
您可以选择将UpdatePanel
的UpdateMode
设置为Conditional
(在Triggers
中设置触发UpdatePanel的控件的id)或始终
(您可以删除Triggers
元素)
表单提交 您必须使用
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(),“alert”,“$(函数(){ShowLoading();});”代码>
将其放入基类或母版页中的“Page Init”或“Page Render”事件中,并使所有aspx页面扩展此基类
AJAX请求
在这种情况下,您应该在文档
对象中附加jquery事件。将此内容放入母版页:
$( document).ajaxSend(function() {
ShowLoading();
});
<form id="form" runat="server">
<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updatePanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<%-- Your elements --%>
<%-- Your buttons --%>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btn_id" />
</Triggers>
</asp:UpdatePanel>
</form>
$( document).ajaxSend(function() {
ShowLoading();
});