javascript - 如何动态设置 AJAX 加载栏的动画直至其达到 100%?

标签 javascript jquery ajax

这是我上一个问题 "How do I measure a loading time of an AJAX request and display a loading panel?" 的后续问题。现在我想知道如何显示这样的动画加载栏/面板:

enter image description here

我的意思是实际的面板从 0% 移动到 100%。我这里有一些代码来开始讨论。我正在实现一个从这个精彩的 site 加载的教程.

    $("#connection").click(function(e) {
        e.preventDefault();
        //show_loading();
        $.ajax({
            url: "./home/connect",
            type: 'GET',
            dataType: 'json', 
            progress: function(jqXHR, progressEvent) {
                if (progressEvent.lengthComputable) {
                    console.log("Loaded " + (Math.round(progressEvent.loaded / progressEvent.total * 100)) + "%");
                } else {
                    console.log("Loading...");
                }
            },
            success : function(data) {
                //hide_loading();
                Materialize.toast(data.db_connect, 4000, 'rounded green');
            },
        });
    });

此代码的问题在于,当达到 100% 时,它会在控制台中显示 100%,而不是实时显示(显示从 0 - 100 的实际计数)。

enter image description here

最佳答案

我在官方文档中没有看到任何 progress 函数,但我找到了这段代码 here :

$.ajax({
    url: path,
    xhrFields: {
        onprogress: function (e) {
            if (e.lengthComputable) {
                console.log(e.loaded / e.total * 100 + '%');
            }
        }
    },
    success: function (response) {

    }
});

关于javascript - 如何动态设置 AJAX 加载栏的动画直至其达到 100%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314993/

相关文章:

javascript - 尝试使用 preg_match_all 使用 php 动态创建菜单到我的服务器 php 文档

javascript - 获取 jquery $.ajax 请求使用的设置

javascript - 仅使用 javascript 动态验证表单

javascript - "call stack"和 "task queue"之间的区别

javascript - 检测元素何时将获得焦点

javascript - 使用ajax、jquery和PHP上传带有其他信息的图像

javascript - 有趣的 jQuery 动画

javascript - 如何确定哪个 DOM 元素首先使用 JavaScript

javascript - AJAX 响应为空

php - 使用 jQuery.ajax() 发送和使用 POST 变量