我有一些脚本,接受一个表单,并将其发送到php使用jquery ajaxSubmit。
服务器端必须从一个位置复制图像到另一个位置。如果你有很少的图片,使用这个代码copy($img_dir_file,$mini_dir_file);
是可以的。
但是如果你有让我们说20+图像php工作缓慢,并在完成它的工作之前响应ajax。因此Ajax将内容更改为空白页,因为结果还没有准备好。
如果你稍后刷新页面,一切都好,因为php完成了他的工作。
请告诉我该怎么处理这个问题
脚本是这样的
$('#save_edited_article').live('click',function(){
$('#edited_article_form').ajaxSubmit({
success: function(responseimage){
$('#main_content').html(responseimage) } }); });
您可以使用Promise
,它将在作业完成时通知浏览器。
查看jqXHR对象作为JQuery Ajax的一部分-当jqXHR对象(作为Promise
工作)完成后,您可以更改您的主要内容:
jqxhr.done(function(){ $('#main_content').html(responseimage); });
编辑
使用你的代码的一个例子可以是:
$("#edited_article_form").submit(function() {
var jqxhr = $.post(
"foo.php",
$("#edited_article_form").serialize()
);
jqxhr.fail(function(){ alert("fail") });
jqxhr.done(function(responseimage){ $('#main_content').html(responseimage) });
});
免责声明:本文是动态编写的,可能无法编译。例如,它仅用于
让AJAX调用检查它是否完成,如果没有,则每隔几秒轮询一次,直到它准备好。
更新了jQuery和ajaxSubmit插件,一切都很好。