如何在xmlHttpRequest正确显示进度条?

时间:2016-10-18 14:08:01

标签: javascript xmlhttprequest progress-bar

问题在于,当我试图显示进度条(仅仅.gif)时,我看不到它。使用chrome dev工具逐步执行时。我看到了。在没有断点的情况下运行我不会。看起来它似乎没有设法在开始请求之前绘制gif,但我不明白为什么。代码如下:

startLoadingAnimation();
var bill = model.save(data);
stopLoadingAnimation();

其中startLoadingAnimation();是:

function startLoadingAnimation()
{
    var imgObj = $("#loadImg");
    imgObj.show();

    var centerY = $(window).scrollTop() + ($(window).height() + imgObj.height())/2;
    var centerX = $(window).scrollLeft() + ($(window).width() + imgObj.width())/2;

    imgObj.offset({top:centerY, left:centerX});
    }

stopLoadingAnimation()是:

function stopLoadingAnimation() 
{
    $("#loadImg").hide();
}

model.save(data)最终进入

SOAPClient._sendSoapRequest(url, method, parameters, async, callback, wsdl, forseArray);

1 个答案:

答案 0 :(得分:0)

您最好的选择是让您的保存方法将callback功能作为第二个选项...然后传递到您的_sendSoapRequest callback参数,然后您可以利用您的stopLoadingAnimation功能。

<强>伪代码

var bill = model.save(data, { callback: function() { stopLoadingAnimation(); } });

您需要修改现有的.save()函数来处理选项的第二个参数(如果它还没有接受某些内容)。