2010-08-02 14 views
1

我正在同時調用同一個jscript函數的3(或更多)的頁面上工作。我正在使用一個經過測試的函數,它可以處理多個併發的ajax請求(可以在網上找到,因爲我現在正面臨着這個新問題)。如何處理未能打開流錯誤,幫助(javascript,ajax)

的HTML是眼前這個

<div id="1"> <script> ajax2(); </script> </div> 
<div id="2"> <script> ajax2(); </script> </div> 
<div id="3"> <script> ajax2(); </script> </div> 

正如你所看到的,HTML請求3相同的功能,同時呼叫。

的ajax2()JScript函數具有此行請求打開一個文件

xhrObj.open("GET", "../testa.php",true); 

的問題是,有時文件不可用,因爲太多的併發請求被打開,並且程序給人以

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 

Fatal error: Unknown: Failed opening required 'C:/xampp/htdocs/test/testa.php' 

如何處理這個錯誤並替換打開的文件要求,這樣它會打開另外一個文件(即testb.php)?

如果testa.php不可用,我嘗試使用testb.php和testc.php替代testa.php的方法來處理替換。

var x = xhrObj.open("GET", "../testa.php",true); 
if (!x) { var y = xhrObj.open("GET", "../testb.php",true); 
      if (!y) { xhrObj.open("GET", "../testc.php",true);} 
} 

但代碼不起作用。語法是錯誤的,因爲它給出了相同的錯誤,並且警告顯示testa.php始終是不可用的文件。

什麼是檢查xhrobj.open是否正確,如果沒有,正確的語法是否打開另一個文件?

TIA

回答

0

你正在一個異步請求,這意味着你只啓動請求,並且該方法立即返回不知道,如果該請求將工作或沒有。

您必須使用在響應到達時調用的回調方法,或者您必須改爲創建同步請求。

+0

謝謝Guffa,我會研究一下。 – jamex 2010-08-02 07:29:02