Javascript源文件下载进度?

标签 javascript jquery

我正在获取一个大型映射/小部件 JavaScript 文件 (1.3 MB),并希望在加载时显示进度条。我知道 firebug 的网络监视选项卡知道很多此类信息,但我想要更轻量级的东西。我偶然发现了这个网站: http://blog.greweb.fr/2012/04/work-in-progress/

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

提前致谢!

最佳答案

如果您使用getScript()您可以使用成功回调执行函数,但这仅在脚本加载完成时进行。

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

This 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
    }
});

这设置了一个时间间隔,通过加载的字节和总字节来计算进度。这可能对你有用。

关于Javascript源文件下载进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265917/

相关文章:

javascript - 如何在浏览器中显示控制台内容?

javascript - 使用 HTML 或 JavaScript 制作当前网站的 "screenshot"?

javascript - 切换按钮不起作用。没有显示 : none; at first click

javascript - 从 Angular 指令中的 templateURL 访问 ID

jquery - Slick Slider (Ken Wheeler) - 隐藏 slider 直到加载

javascript - 定位和操作 setInterval 计时器值

javascript - 如何让 onclick 事件选择使用 Javascript 单击的元素的 id?

javascript - 如何根据媒体查询禁用特定脚本?

jquery - 全局搜索列包含选择框的数据表

jquery - 在 jQuery css 语句上设置符号的编号