搜索诸如提交完成事件之类的内容以关闭加载程序

Searching for something like submit complete event to turn loader off

本文关键字:程序 加载 提交 事件 搜索      更新时间:2023-09-26

我正在尝试在我的 asp.net 网络表单应用程序上使用加载器。我的JavaScript加载器:

        function loading() {
            $("#loading").show();
        }
        function loaded() {
            $("#loading").hide();
        }

HTML 加载器

    <div id="loading">
         <span id="MessageLoader">Loading...</span>
         <img id="imgLoading" src="../Skin/images/blue-ajax-loader.gif" />
    </div> 

这不是问题,每次尝试时它都能正常工作,我的问题是我如何为每个请求使用此加载器?我尝试通过两种方式使用它:首先在每个链接中放置加载器调用,并在加载每个页面正文 onload 事件时取消调用它,它工作正常,但是当我点击打开新选项卡、新窗口或下载某些文件的链接时,我的加载器永远不会完成,请参阅下面的代码:

        $('a').click(function () {
              if ($(this).attr('href') != '#'){
                 loading();
              }
        }
其次,我

使用了我的页面拥有的一个资源:我系统上的每个页面在代码隐藏中都与另一个页面有继承,因此在父页面加载中,我将以下代码放在下面:

        ScriptManager.RegisterOnSubmitStatement(this, this.GetType(), "myscript", "loading();");

比上一个工作得更好,它仍然带有页面正文加载事件来关闭加载器,但仍然存在一个问题,当我提交尝试下载文件时,它不会在页面上回发,所以它不会放下我的加载器。那么,我能做些什么呢?我搜索了类似提交完整事件的内容,但没有成功。我的想法是将提交完成事件放在父页面上,但我需要知道该事件。如果你想再给我一个想法,我将不胜感激。

打开新标签/窗口时,当前页面将成为新标签/窗口中的页面。你与上一页的加载器有什么关系?其次,您的主文档现在如何加载新页面?

注意:click 事件会立即触发,持续时间为 0,因此没有任何回调。

但是,如果您需要加载一段时间的gif并在一段时间后隐藏,则可以设置Timeout功能。

点击查看JSFIDDLE示例

$('a').click(function () {
              if ($(this).attr('href') != '#'){
                  loading();
                  setTimeout(loaded, 3000); //3 secs
              }
});