多个ajax请求在同一文件上写入。

时间:2014-01-15 10:39:22

标签: javascript php ajax xml

在我的应用程序中,我使用了多个写入XML文件的ajax请求。 Ajax请求会在某些事件上触发(比如div的offsettop等于某个值),因此无法准确预测其时序。两个请求也可能同时触发。我的问题是,如果它们同时触发并尝试写入相同的XML文件,您认为它会产生冲突,该冲突不允许文件由两个请求打开。因为,在我的情况下,我收到一个错误说:

(!)警告:SimpleXMLElement :: asXML(withbabu.xml)[simplexmlelement.asxml]:无法打开流:参数无效

我知道当文件名错误或文件不存在时会出现此错误,但在我的情况下,相同的请求可以运行多次相同的代码行,有时只会返回此错误。所以,我确信在幕后发生了一些事情。因为我使用多个ajax请求写入同一个文件所以我想,这可能是造成此错误的原因。如果你知道什么是解决方案,请提供你的答案。

错误出现在这一行:

$filename = "with".$SESSION['user'];
$xml->asXML($filename.'.xml');       // error shows its line number here. 

就像介绍一样,这类似于游戏应用程序,并根据某些事件触发多个ajax请求。

非常感谢你抽出时间回顾我的问题。

干杯。

1 个答案:

答案 0 :(得分:0)

您需要在使用asXML之前创建一个xml对象。这样做:

$filename = "with".$SESSION['user'];
$xml=new SimpleXMLElement();
$xml->asXML($filename.'.xml');