如何获得<script>的下载进度?

安德鲁克

举例来说,我正在创建一个游戏。我有一个小脚本,其任务是加载所有资产,并在加载资产时向用户显示进度栏。

这样的资产之一就是包含游戏逻辑的相当大的脚本。也许超过3 MB。

如何向用户显示第二个脚本的加载进度?

炸药

<script>仅标记火灾loaderror事件;他们不会触发progress事件。但是,在现代浏览器中,Ajax请求确实支持progress事件您可以加载脚本内容并通过Ajax监视进度,然后<script>在加载完成后将脚本内容放入新元素中:

var req = new XMLHttpRequest();

// report progress events
req.addEventListener("progress", function(event) {
    if (event.lengthComputable) {
        var percentComplete = event.loaded / event.total;
        // ...
    } else {
        // Unable to compute progress information since the total size is unknown
    }
}, false);

// load responseText into a new script element
req.addEventListener("load", function(event) {
    var e = event.target;
    var s = document.createElement("script");
    s.innerHTML = e.responseText;
    // or: s[s.innerText!=undefined?"innerText":"textContent"] = e.responseText
    document.documentElement.appendChild(s);

    s.addEventListener("load", function() {
        // this runs after the new script has been executed...
    });
}, false);

req.open("GET", "foo.js");
req.send();

对于不支持Ajax的较旧的浏览器progress,您可以构建进度报告UI,以仅在第一个progress事件之后显示加载栏(否则,如果未progress触发任何事件,则显示通用微调器)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何显示下载进度?

来自分类Dev

如何在AFNetworking 2.0中获得下载进度?

来自分类Dev

如何使用ServiceStack客户端恢复大文件下载并获得下载进度?

来自分类Dev

如何显示PFImageView中PFFile下载的进度

来自分类Dev

如何显示下载进度和速度

来自分类Dev

SBT下载jar时如何显示下载进度?

来自分类Dev

SBT下载jar时如何显示下载进度?

来自分类Dev

如何告诉iOS从iCloud Drive下载文件并获得进度反馈

来自分类Dev

如何在AFNetworking 3.0中使用AFHTTPSessionManager获得下载进度

来自分类Dev

通过AFNetworking 2.0 + NSProgress + Custom ProgressView获得下载进度

来自分类Dev

Google Drive Api v3获得下载进度

来自分类Dev

如何获得XMLHttpRequest Promise进度

来自分类Dev

如何获得SQLite'VACUUM'进度

来自分类Dev

AsyncTask如何从MainActivity获得进度

来自分类Dev

如何使用请求衡量下载速度和进度?

来自分类Dev

如何显示MVC4页面的下载进度

来自分类Dev

如何通过https下载具有IdHTTP进度的文件

来自分类Dev

如何将文件下载与进度视图链接

来自分类Dev

如何使改装接受每个请求的下载进度的回调?

来自分类Dev

如何使用进度条下载.exe文件-VB 2012

来自分类Dev

如何显示另一堂课的下载进度?

来自分类Dev

如何在Chrome扩展程序中捕获下载进度

来自分类Dev

关闭SSH会话后如何监视WGET下载进度

来自分类Dev

如何计算百分比的文件下载进度?

来自分类Dev

如何使用AndroidAnnotations制作进度条以显示大文件的进度下载?

来自分类Dev

如何从列表下载文件并在进度条中显示进度

来自分类Dev

如何使用两个progressBar控件显示每个文件的下载进度以及所有文件下载的整体进度?

来自分类Dev

如何获得ZipFile.Read()的进度

来自分类Dev

如何获得输入type = file的加载进度?

Related 相关文章

  1. 1

    如何显示下载进度?

  2. 2

    如何在AFNetworking 2.0中获得下载进度?

  3. 3

    如何使用ServiceStack客户端恢复大文件下载并获得下载进度?

  4. 4

    如何显示PFImageView中PFFile下载的进度

  5. 5

    如何显示下载进度和速度

  6. 6

    SBT下载jar时如何显示下载进度?

  7. 7

    SBT下载jar时如何显示下载进度?

  8. 8

    如何告诉iOS从iCloud Drive下载文件并获得进度反馈

  9. 9

    如何在AFNetworking 3.0中使用AFHTTPSessionManager获得下载进度

  10. 10

    通过AFNetworking 2.0 + NSProgress + Custom ProgressView获得下载进度

  11. 11

    Google Drive Api v3获得下载进度

  12. 12

    如何获得XMLHttpRequest Promise进度

  13. 13

    如何获得SQLite'VACUUM'进度

  14. 14

    AsyncTask如何从MainActivity获得进度

  15. 15

    如何使用请求衡量下载速度和进度?

  16. 16

    如何显示MVC4页面的下载进度

  17. 17

    如何通过https下载具有IdHTTP进度的文件

  18. 18

    如何将文件下载与进度视图链接

  19. 19

    如何使改装接受每个请求的下载进度的回调?

  20. 20

    如何使用进度条下载.exe文件-VB 2012

  21. 21

    如何显示另一堂课的下载进度?

  22. 22

    如何在Chrome扩展程序中捕获下载进度

  23. 23

    关闭SSH会话后如何监视WGET下载进度

  24. 24

    如何计算百分比的文件下载进度?

  25. 25

    如何使用AndroidAnnotations制作进度条以显示大文件的进度下载?

  26. 26

    如何从列表下载文件并在进度条中显示进度

  27. 27

    如何使用两个progressBar控件显示每个文件的下载进度以及所有文件下载的整体进度?

  28. 28

    如何获得ZipFile.Read()的进度

  29. 29

    如何获得输入type = file的加载进度?

热门标签

归档