2009-06-23 92 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插件。 您還需要通知您的訪客/客戶等待。