使用AJAX处理其他脚本的复杂提交表单

时间:2009-06-23 22:14:20

标签: jquery ajax forms submission

我有一个以传统(非ajax)方式提交的现有注册表单。我想拼接一些Javascript,以便我可以使用此表单中的一些数据来填充另一个数据库中的其他字段。如果此插入需要花费大量时间(一分钟),那么页面将被锁定,直到AJAX调用返回?

<script language="javascript">
$(document).ready(function(){   
    $("#setupform").submit(function(){
        doAJAXcallHERE();
    });
});
</script>

基本上,如果AJAX函数调用的PHP页面需要一分钟才能处理,我的网页是否会停止运行?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果请求需要超过几秒钟,您应该:

  • 调用后禁用“提交”按钮,这样他们就不会再次尝试重新提交表单。
  • 在屏幕上显示某种消息,通知他们正在处理他们的请求,要求他们在那里继续!
  • 显示某种animated indicator以及消息。

特别是最后2点将确保用户意识到幕后发生某事。此外,如果您希望请求花费很长时间,请确保相应地调整Web服务器超时设置。

答案 1 :(得分:0)

已经正确回答,但我想补充一些...... 在php页面上,您需要通过set_time_limit(0)使用设置的最长执行时间。 您的ajax提交脚本必须进行优化。 特别是IE6在提交文件时存在很多问题。使用ajax发布数据。 如果您使用奇怪的技术(我经常使用),您可能需要将脚本更改为简单的1。 不久之前我和IE6一样有问题。浏览器阻止了自己。 只是因为序列化几个单选按钮的数组定义。 所有其他浏览器与脚本配合良好,但IE6停止,等待&amp;等待... 即使IE7工作正常。

不过,看来你正在使用Jquery ...... 我建议你在malsup.com上使用jquery blockui插件。 您还需要通知访客/客户等待。