javascript - 带有百分比的 Ajax 加载进度条

标签 javascript jquery ajax

我正在与图像 uploader 合作。问题是图片 uploader 只显示一个 ajax 进度条图片但没有任何百分比。

如何在下面的代码中实现百分比(与进度条相关)?

jQuery.itemForm.submitFormIfNotImageLoading = function(loadingTime) {

    if (jQuery.uploaderPreviewer.loadingImages()) {
      if(loadingTime > $.itemForm.loadingTimeout) {
        var settings = {
            title: $.itemForm.messages.timeoutTitle,
            message: $.itemForm.messages.timeoutMessage,
            buttons: { 'OK': function() { $(this).dialog("close"); } }
        };
        $.globalFunctions.openDialog(settings);
      }
      else {
        loadingTime += $.itemForm.checkingIntervalTime;
        var progressBarValue = $("#progressbar").progressbar('value')
                             + $.itemForm.progressBarInterval;
        $("#progressbar").progressbar('value', progressBarValue);
        var recursiveCall = "$.itemForm.submitFormIfNotImageLoading(" + loadingTime + ")";
        setTimeout(recursiveCall, $.itemForm.checkingIntervalTime);
      }
    }
    else {
      submitForm();
    }
};

function showImageLoadingMessage() {

    var options = {
        title: $.itemForm.messages.savingTitle,
        message: $.itemForm.messages.savingMessage
    };

    $.globalFunctions.openDialog(options);

    $("#progressbar").progressbar({
        value: 0
    });

    var progressBarInterval = $.itemForm.checkingIntervalTime * 100 / $.itemForm.loadingTimeout;
    if (progressBarInterval != Number.NaN) {
        $.itemForm.progressBarInterval = Math.floor(progressBarInterval);
    }
};

最佳答案

实际上,由于通信是没有持久连接的客户端-服务器,您不能非 HTML5 中使用 ajax 显示百分比浏览器

你应该考虑(如果你想保持兼容性)使用一些 flash uploader ,它们应该能很好地满足你的需要(this 是我发现的第一个)

您也可以使用持久连接方法,例如 COMET或类似的,但无论如何它与旧浏览器几乎不兼容。

如果你是一个“开源”友好的人,我认为如果你使用 HTML5 进度条和一个没有进度的替代品对于那些浏览器不兼容的人来说更好(如果它像一个 jQuery 插件,你无论如何都会拥有大多数使用 HTML5 浏览器的用户)

关于javascript - 带有百分比的 Ajax 加载进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345263/

相关文章:

javascript - 将本地文件从 Electron 推送到 PHP 服务器

javascript - 使用 JavaScript Ajax 将表单数据发送到 Spring MVC

javascript - jQuery - 将类添加到不同数量的 div

javascript - 流类型错误地认为我正在将 props 传递给渲染方法中的组件

javascript - jQuery版本升级-jQuery库版本之间的差异

c# - 如何将所选列表项的字符串值参数从自动填充的下拉列表传递到 MVC 4 中的部分 View Controller ?

javascript - 当 JavaScript 计时器到期时,如何将用户重定向到新页面?

javascript - 使用 date-fns 将日期解析为 UTC 的正确方法

javascript - 结合 HTML5、CSS 和 JS

javascript - 使用 jQuery 延迟加载 div?