Jquery 等待从动作显示图像时显示微调器

Jquery 等待从动作显示图像时显示微调器,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我的MVC 3项目中有一个页面,用于从reporting services中提取报告,结果显示在: <img src="@Url.Action("ActionName", "Controller",...etc 此图像在页面底部呈现。该操作返回一个FileContentResult,可能需要几秒钟才能显示 我想做的是在返回图像时显示一个微调器。我遇到的问题(我对此搜索了很多)是,它不是ajax,不是使用JQuery,它只是浏览器用来检索图像的一个简单的旧URL 所以问题是,如何在旋转器

我的MVC 3项目中有一个页面,用于从reporting services中提取报告,结果显示在:

<img src="@Url.Action("ActionName", "Controller",...etc

此图像在页面底部呈现。该操作返回一个FileContentResult,可能需要几秒钟才能显示

我想做的是在返回图像时显示一个微调器。我遇到的问题(我对此搜索了很多)是,它不是ajax,不是使用JQuery,它只是浏览器用来检索图像的一个简单的旧URL


所以问题是,如何在旋转器等待时显示旋转器?这可能吗?或者我必须使用JQuery/Ajax将图像加载到其他地方,然后显示它吗?

我就是这样做的。我通常会将其添加到我的_布局页面,以便在项目的每个页面上加载此脚本和div。这将导致微调器在出现ajaxSend和hide on ajaxStop或ajaxError时显示

<script type="text/javascript">
        $(document).ready(function () {
            BindSpinner();
        });

        function BindSpinner() {
            $("#spinner").bind("ajaxSend", function () {
                $(this).show();
            }).bind("ajaxStop", function () {
                $(this).hide();
            }).bind("ajaxError", function () {
                $(this).hide();
            });
        };
    </script>



  <div id="spinner" class="spinner" style="display: none;">
       <img id="img-spinner" src="@Url.Content("~/Content/Images/ajax-loader.gif")" alt="Loading..." />
  </div>

$(文档).ready(函数(){
BindSpinner();
});
函数BindSpinner(){
$(“#微调器”).bind(“ajaxSend”,函数(){
$(this.show();
}).bind(“ajaxStop”,函数(){
$(this.hide();
}).bind(“ajaxError”,函数(){
$(this.hide();
});
};
现在,只要ajax使UI等待,就会显示微调器


可以找到使用ajax调用操作的指南

不久前,我遇到了一个类似的问题,我编写了一个jQuery插件,可以自动显示微调器

您是否尝试过使用alt=“spinner.gif”?好主意JackalopeZero,但不幸的是,它不起作用:(这可能是在ajax调用中添加等待场景的非常好的方法的重复在此之前,我对每个ajax调用都使用回调,你真的让我大开眼界,而且编写回调的方法也非常麻烦..这对你来说是非常好的+1,非常感谢......:DThanks Totero-看起来是一种非常好的方法。我想我ans如果不使用Ajax,就没有办法做到这一点?因为我目前没有使用任何形式的Ajax…我不这么认为,因为您正在发出一个同步请求,它将无法以我认为您想要的方式显示微调器。Ajax是异步的,所以它可以。为什么不使用Ajax请求呢?您的权利-我想我只需要重新使用Ajax任务。我这样做是为了简单-img标签只需要它的src就可以成为动作,很好,很简单,它就可以工作,但它确实意味着在显示图像之前有一个延迟,从UI的角度来看,这个延迟有点垃圾!谢谢你的回答:)真棒的回答都德-达炸弹