如何使用ajaxStart显示加载微调器?

Max*_*Max 6 ajax

我有一个使用命令shell_exec运行python脚本的网页.我想要一个加载微调器,'请等待这个页面加载'类型的消息,在python脚本运行时显示,然后在完成其余的回声HTML显示之后.

我在/sf/answers/4795241/找到了一个好的解决方案, 但我是ajax的新手,我不知道如何使用该解决方案.我试过了

<div id="loadingDiv">Please wait while this page loads.</div>
<script>var $loading = $('#loadingDiv').hide();
$(document)
  .ajaxStart(function () {
    $loading.show();
  })
  .ajaxStop(function () {
    $loading.hide();
  });
</script>
Run Code Online (Sandbox Code Playgroud)

但这没用.我是否需要调用ajax来执行ajaxStart?我怎么称呼它?我应该在ajax代码中包装shell_exec吗?

谢谢一堆.

Man*_*uru 13

每当要发送Ajax请求时,jQuery都会检查是否还有其他未完成的Ajax请求.如果没有进行,jQuery会触发ajaxStart事件.

有一个如下所示的加载gif图像

           <div id="loading">
                <img src="loading.gif" />  
           </div>
Run Code Online (Sandbox Code Playgroud)

首先隐藏此加载div(因为当ajax请求即将发送时必须显示加载图像).

              <script>
                   var $loading = $('#loading').hide();
                   //Attach the event handler to any element
                   $(document)
                     .ajaxStart(function () {
                        //ajax request went so show the loading image
                         $loading.show();
                     })
                   .ajaxStop(function () {
                       //got response so hide the loading image
                        $loading.hide();
                    });
              </script>
Run Code Online (Sandbox Code Playgroud)

有关jQuery文档的更多信息,请参阅

我是否需要调用ajax来执行ajaxStart?我怎么称呼它?

是的,当您触发ajax请求时,只会自动触发ajaxStart.

对于ajax,jquery有多种方式,下面我给出了load函数.

               $( ".result" ).load( "some_file.py" );
Run Code Online (Sandbox Code Playgroud)

some_file.py输出将插入到具有类名结果的div中.

要触发加载事件,您可以根据需要使用按钮单击或任何其他操作.

               $( ".trigger" ).click(function() {
                  $( ".result" ).load( "some_file.py" );
               });
Run Code Online (Sandbox Code Playgroud)