Chrome和XMLHttpRequest期间的进度标记

时间:2013-05-13 07:04:53

标签: javascript html google-chrome progress

我在Chrome中使用<progress>标记时遇到问题(在不确定状态下使用它)。它首先动画完美,直到我拍摄XMLHttpRequest,此时progress元素停止制作动画。

XMLHttpRequest完成后,progress元素会再次启动动画。

此问题在Firefox中不会发生 - 在Firefox中,progress元素在处理XMLHttpRequest期间继续制作动画。

显然这是Chrome中的线程问题 - 有没有人知道这方面的解决方法?

编辑:添加了一些代码。

JavaScript部分(使用jQuery):

function process() {
    $("#start").val("Processing...");
    $("#start").attr("disabled", "disabled");
    $("#pbar").show();
    setTimeout(function() {
        if (window.XMLHttpRequest) { // ie7+, firefox, chrome, safari, opera
            xmlhttp = new XMLHttpRequest();
        } else { // ie6, ie5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET", "/process/generateProdOrders.asp?f=" + $("#from").val() + "&t=" + $("#to").val(), false);
        xmlhttp.send();
        var xmlDoc = xmlhttp.responseXML;
        var numOrders = parseInt(xmlDoc.getElementsByTagName("orders")[0].childNodes[0].nodeValue);
        $("#result").append("<br />" + numOrders + " orders generated");
        $("#pbar").hide();
        $("#start").val("Done");
    }, 50);
}

HTML部分:

<input type="button" id="start" value="Start" onclick="process()"><br />

<progress id="pbar" style="display: none;">Processing orders...</progress><br />

0 个答案:

没有答案