私はfilestackでワードカウンタファイルを実行していますが、これが終了するとワード数をカウントしながら非表示にしています。forループが終了するまでロードを表示する
だから私はHTMLでこの持っている:
<div id="loading" style="display:none;clear:both;">
<img src="loading.gif">
</div>
<input id="ff" type="filepicker" data-fp-apikey="<myAPI>" data-fp-mimetypes="image/*,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" data-fp-container="modal" data-fp-multiple="true" data-fp-button-class="btn btn-primary l-align" data-fp-button-text="Upload" data-fp-services="SKYDRIVE,COMPUTER,URL,GOOGLE_DRIVE,GMAIL" data-fp-language="es">
<div id="result"></div>
そしてJSに私はこれを持っている:私は「$( "#ロード")を入れしようとしている
$("document").ready(function(){
$("#ff").change(function(){
var out='';
for(var i=0;i<event.fpfiles.length;i++){
var n = i+1;
out+='<a target=_blank href=' + event.fpfiles[i].url + '>' + '<button type=button class=btn-sc2><i class=fa fa-file-text aria-hidden=true></i> ' + event.fpfiles[i].filename + '</button></a>';out+=' '
if(event.fpfiles[i].mimetype=="image/jpeg"){
$.post("filecount.php",{
url: event.fpfiles[i].url
}).done(function(response){
//functions to count words
});//post
} else if(event.fpfiles[i].mimetype=="application/msword"){
var link = event.fpfiles[i].url;
var idfile = link.substr(link.lastIndexOf("/")+1);
var lcconvert = "https://process.filestackapi.com/output=format:txt/"+idfile;
$("#dkd").load(lcconvert, function(){
$.post("filecount2.php",{
url: $("#dkd").val()
}).done(function(response){
//functions to count words
});//post
});
}
};//for
$("#result").html(out);
});//#ff
});
を表示() ; 'と '$( "#loading")。hide();'ポスト機能のどの部分でも機能しません。ポスト機能が終了したときには表示されますが、表示されません。
私はいくつかの助けをしたいと思います。
投稿が失敗する可能性があり、 'always'が成功と失敗の両方を処理するので、' done'の代わりに 'always'関数に隠しておくべきです – Escobar5
あなたが必要とするのは、ループの各繰り返しにAJAXの約束を保存することです配列に( 'ajaxArray'と呼ぶ)、' $ .when.apply($、ajaxArray) 'を使ってすべてのAJAXリクエストがいつ完了したかを調べます。 – Terry