2012-07-05 136 views
2

我正在使用图片上传器。问题在于图片上传器仅向我显示ajax进度条图片,但没有任何百分比。Ajax加载进度条百分比

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

jQuery.itemForm.submitFormIfNotImageLoading =函数(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); 
    } 
}; 
+0

您正在寻找HTML5解决方案还是旧的学校方法? – VAShhh 2012-07-05 13:30:18

+0

我正在寻找一个老派的方法 – techAddict82 2012-07-05 14:14:41

回答

1

实际上,由于这一事实,该通信是客户端 - 服务器没有持久连接你不能显示百分比 ajax在非HTML5浏览器

你应该考虑(如果你想保持兼容性)使用一些闪光的上传应该起到很好的为你的需要(this是第一次,我已经找到)

您也可以使用持久像COMET或类似的连接方法,但它与旧版浏览器无法兼容。

如果你是一个“开源”友好的家伙,我认为如果你使用HTML5进度条和其他替代浏览器的人没有进步,那么它会更好一些(如果它是一个jQuery插件,你将拥有大多数使用HTML5浏览器的用户)