当前位置:  开发笔记 > 后端 > 正文

使用ASP.NET MVC Ajax调用的全局"加载"通知

如何解决《使用ASP.NETMVCAjax调用的全局"加载"通知》经验,为你挑选了2个好方法。

我有兴趣提供一个通用的"我正在制作ajax通话"通知...类似于大多数谷歌服务在忙于拨打电话时都会收到一些红色加载通知.有没有办法全局点击某些事件,如果有正在进行的通话,我可以用它来显示/隐藏该通知?

我们没有使用jQuery ajax apis,我们正在使用MVC Ajax的东西......比如Ajax.BeginForm或Ajax.ActionLink.



1> montrealist..:

我不知道为什么以前的答案被接受,但你可以只使用LoadingElementId参数在AjaxOptions,指定在你的页面有其元素的ID 显示 CSS属性设置为.

new AjaxOptions { UpdateTargetId = "somebox", LoadingElementId = "status-waiting" }

MVC将为您完成剩下的工作:当请求启动时,DIV将显示,一旦完成 - 再次隐藏.您所要做的就是设置框的样式(定位它,提供'加载'图像等).



2> Darin Dimitr..:

如果您使用JQuery 进行AJAX调用,您可以使用以下内容:

jQuery.ajax({
    url: 'url_to_send_ajax_request_to',
    beforeSend: function(XMLHttpRequest) {
        jQuery('#id_of_some_div_that_contains_loading_text').show();
    },    
    complete: function(XMLHttpRequest, textStatus) {
        jQuery('#id_of_some_div_that_contains_loading_text').hide();
    }
});

beforeSend处理器可用于显示包含您的加载文字或图像,而隐藏的div 完整的处理程序将被用来隐藏它(无论呼叫是否成功与否).

或者,如果要为所有AJAX请求全局设置它,可以使用ajaxSetup函数:

jQuery.ajaxSetup({
    beforeSend: function(XMLHttpRequest) {
        jQuery('#id_of_some_div_that_contains_loading_text').show();
    },    
    complete: function(XMLHttpRequest, textStatus) {
        jQuery('#id_of_some_div_that_contains_loading_text').hide();
    }
});

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有