Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次加载页面时都运行javascript_Javascript_C#_Jquery_Asp.net_Twitter Bootstrap - Fatal编程技术网

每次加载页面时都运行javascript

每次加载页面时都运行javascript,javascript,c#,jquery,asp.net,twitter-bootstrap,Javascript,C#,Jquery,Asp.net,Twitter Bootstrap,在我的web应用程序中,我有一个包含加载条的模式弹出窗口。我让它出现在任何我知道需要几秒钟才能执行的命令上,比如点击按钮等等 除了一个复杂的问题外,它目前工作正常,运行它的内部web服务器非常糟糕,根据用户的数量,它可以在导航到页面等简单任务上减慢速度 如何使加载模式在每次页面考虑执行某项操作时都出现,而不必对每个可能的场景进行硬编码 我的web应用程序正在使用包含模式代码的母版页 谢谢 脚本 function ShowLoading() { $('#modalLoading').mod

在我的web应用程序中,我有一个包含加载条的模式弹出窗口。我让它出现在任何我知道需要几秒钟才能执行的命令上,比如点击按钮等等

除了一个复杂的问题外,它目前工作正常,运行它的内部web服务器非常糟糕,根据用户的数量,它可以在导航到页面等简单任务上减慢速度

如何使加载模式在每次页面考虑执行某项操作时都出现,而不必对每个可能的场景进行硬编码

我的web应用程序正在使用包含模式代码的母版页

谢谢

脚本

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