在我的應用程序中,我使用了寫入XML文件的多個ajax請求。 Ajax請求在某些事件上被觸發(如div的偏移量等於某個值),所以他們的時間不能被準確預測。這兩個請求也可能同時觸發。我的問題是,如果它們同時觸發並嘗試寫入相同的XML文件,您是否認爲這會產生衝突,導致文件無法通過兩個請求打開。因爲,在我的情況下,我得到一個錯誤說:在同一個文件上寫入多個ajax請求。
警告(!)的SimpleXMLElement :: asXML(withbabu.xml)[simplexmlelement.asxml]:未能打開流:無效的參數
我知道這個錯誤是在文件名錯誤或文件不存在的情況下發生的,但在我的情況下,同樣的請求能夠運行多次相同的代碼行,並且有時只返回這個錯誤。所以,我相信幕後發生了一些事情。由於我正在使用多個Ajax請求寫入同一個文件,所以我想,這可能是導致此錯誤的原因。如果你知道可以解決這個問題的話,請提供你的答案。
錯誤即將在這條線:
$filename = "with".$SESSION['user'];
$xml->asXML($filename.'.xml'); // error shows its line number here.
只是作爲一個介紹,這是類似於一個遊戲應用,並在觸發基於某些事件的多個Ajax請求。
非常感謝您抽出時間回顧我的問題。
乾杯。
訪問相同的文件當然應該是同步的!然而,在你的php腳本中使用會話(session_start())會序列化每個會話的併發請求;所以應該已經爲你做這個同步.. – fast
你檢查了錯誤的情況下產生的文件名?也許這是一個無效的文件名(由於用戶名中的特殊字符?) – fast
讓我檢查它 –