我使用Ajax和php上传多个图像跨域。 我在Ajax调用之前设置了加载器 一切都很好但是当我选择多个图像上传时,加载程序会在很长时间之后出现。
以下是我的代码
$('#load-div').css('display', 'block');
var data = new FormData();
var c = 0;
var files = new Array();
$.each($('#file')[c].files, function(i, file) {
data.append('files'+i, file);
c++;
});
var other_data = $('#frmaddproperty').serializeArray();
$.each(other_data, function(key, input){
data.append(input.name, input.value);
});
$.ajax({
type: 'POST',
url: 'Coss domain url',
crossDomain: true,
async: false,
cache: false,
contentType: false,
processData: false,
data:data,
success: function(response){
console.log(response);
window.location = 'property_list.php?msg='+response;
},
error: function(){
//alert('Error while request..');
},
});
上面是我的代码我在Div id load-div中设置了加载器。 它是在我上传多张图片后非常大的延迟时间之后发生的。 不知道该怎么办。 在此先感谢。
答案 0 :(得分:0)
您可以使用" ajaxStart()"。
https://api.jquery.com/ajaxStart/
当您的通话开始时,它将启动加载程序。
$( document ).ajaxStart(function() {
$('#load-div').css('display', 'block');
});
<强>更新强>
您也可以使用&#34; beforeSend&#34;。
$.ajax({
url: '',
beforeSend: function() {
$('#load-div').css('display', 'block');
},
详细了解您的选择:
http://api.jquery.com/jquery.ajax/
<强>更新强>
我猜这个循环正在延迟
尝试将装载机放入其中。
或者你需要给我们更多的代码,以弄清楚延迟的原因!
$.each($('#file')[c].files, function(i, file) {
$('#load-div').css('display', 'block');
data.append('files'+i, file);
c++;
});
答案 1 :(得分:0)
async: false,
我已经从我的ajax调用中移除了这一行,并且加载器工作正常。 这是什么意思我不知道