Javascript源文件下载进度

Javascript source file download progress?

本文关键字:文件下载 Javascript      更新时间:2023-09-26

我正在采购一个大型映射/小部件javascript文件(1.3 MB),并希望在加载时显示进度条。我知道Firebug的网络手表选项卡知道很多这些信息,但我想要更轻量级的东西。我遇到了这个网站:http://blog.greweb.fr/2012/04/work-in-progress/

这几乎让我到达那里,除了我需要获取我正在下载的文件。在文件下载时,我没有在jQuery的getScript上看到任何侦听器。 有谁知道如何了解源文件下载的进度?

提前感谢!

如果使用getScript()则可以使用成功回调执行函数,但前提是脚本完成加载。

我建议有一个加载指示器图像(您可以在 http://ajaxload.info/找到很多)并在脚本加载时将其隐藏。

这个SO还有其他一些想法。一个解决方案如下:

var myTrigger;
var progressElem = $('#progressCounter');
$.ajax ({
    type            : 'GET',
    dataType        : 'xml',
    url             : 'somexmlscript.php' ,
    beforeSend      : function (thisXHR)
    {
        myTrigger = setInterval (function ()
        {
            if (thisXHR.readyState > 2)
            {
                var totalBytes  = thisXHR.getResponseHeader('Content-length');
                var dlBytes     = thisXHR.responseText.length;
                (totalBytes > 0)? progressElem.html (Math.round ((dlBytes/ totalBytes) * 100) + "%") : progressElem.html (Math.round (dlBytes /1024) + "K");
            }
        }, 200);
    },
    complete        : function ()
    {
        clearInterval (myTrigger);
    },
    success         : function (response)
    {
        // Process XML
    }
});

这将设置一个间隔,以通过获取加载的字节数和总字节数来计算进度。这可能对您有用。