2009-06-23 93 views
0

我有一个以传统(非Ajax)方式提交的现有注册表单。我想在一些Javascript中拼接,这样我就可以使用这个表单中的一些数据来填充另一个数据库中的其他字段。如果此插入需要大量时间(一分钟),那么在AJAX调用返回之前页面将被锁定?使用AJAX处理其他脚本的复杂提交表单

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

基本上做的是我的网页会停顿下来,如果需要花费一分钟来处理由AJAX函数调用的PHP页面?

谢谢!

+0

你的意思是'它不服务于其他请求吗?' ? – karim79 2009-06-23 22:25:16

回答

1

如果该请求是要采取比几秒钟,你应该:

  • 禁用电话就被打出后提交按钮,使他们不尝试一次又一次地重新提交表单。
  • 在屏幕上显示某种消息,通知他们他们的请求正在处理中,请他们挂在那里!
  • 显示某种animated indicator以及消息。

特别是最后2点会确保用户知道东西发生在幕后。此外,如果您希望请求花费很长时间,请确保您的Web服务器超时设置相应地进行了调整。

0

已经正确回答了,但是我想在php页面上添加更多... ,您需要通过set_time_limit(0)设置最大执行时间。 您的ajax提交脚本必须进行优化。 特别是IE6在提交文件&后发送数据与Ajax有很多问题。 如果您使用奇怪的工艺(我经常使用),您可能需要将您的脚本更改为简单的1. 某个时间以前,我和您的IE6有问题。浏览器正在阻止自己。 只是因为一个数组定义用于序列化几个单选按钮。 所有其他浏览器与脚本一起工作良好,但IE6停止,等待&等待...即使IE7工作正常,也可以使用 。

顺便说一句,它似乎你正在使用jquery ... 我建议你在malsup.com使用jquery blockui插件。 您还需要通知您的访客/客户等待。