控制器响应时的JavaScript显示加载器

时间:2015-04-20 14:45:41

标签: javascript jquery ajax

嗨我有一个JQuery函数,它在调用控制器时 控制器响应(success())它正在加载一个iFrame; 基本上;转换器在30秒后返回成功功能,因此我尝试使用

显示加载图像
beforeSend: function()
{
}, 

功能我试了很多但是没有用;能否请您给我建议如何实现它。我的代码如下:

    var callController = function (FirstName, documentId, fileName, packet) {
    $.ajax({
        type: "POST",
        url: "http://localhost:63902/Home/Preview?DocumentId=" + documentId + "&FileName=" + fileName + "&packet=" + packet,
        cache: false,
        async: false,

        //controller happens...

        success: function (returnedValue) {
            rememberDocumentId(documentId);
            location.reload("#mainIframe");
            setTimeout(function () {

            }, 3000);

            document.getElementById("mainIframe").style.display = "none";
            document.getElementById("documentIframe").style.display = "block";
            document.getElementById("documentIframe").src = "http://localhost:63902/FileProcessing/PDFProcessing/TempPDF/" + returnedValue;

            event.preventDefault();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR + " " + textStatus + " " + errorThrown);
        }
    });

};

1 个答案:

答案 0 :(得分:1)

您可以在$.ajax({...})之后或之前显示您的加载程序,但您应该从不使用async:false ,这是邪恶之根,它将在请求未成功时冻结浏览器。

像这样:

var callController = function (FirstName, documentId, fileName, SL) {
//here
showLoader();
$.ajax({
    type: "POST",
    url: "http://localhost:63902/Home/Preview?DocumentId=" + documentId + "&FileName=" + fileName + "&SL=" + SL,
    cache: false,

    //controller happens...

    success: function (returnedValue) {
        rememberDocumentId(documentId);
        location.reload("#mainIframe");
        setTimeout(function () {

        }, 3000);

        document.getElementById("mainIframe").style.display = "none";
        document.getElementById("documentIframe").style.display = "block";
        document.getElementById("documentIframe").src = "http://localhost:63902/FileProcessing/PDFProcessing/TempPDF/" + returnedValue;
       //hide Here
        hideLoader();
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert(jqXHR + " " + textStatus + " " + errorThrown);
        //hide Here
        hideLoader();
    }
});
}