我注意到有时(随机)我的Mootools ajax请求获取两次。第二个请求立即成功,但第一个请求只是无限期地等待。我不确定这是否是Mootools中的一个错误,或者我已经完成了一些事情。随机复制ajax请求
这已经在firefox和firefox开发者控制台中用chrome验证过。我无法在IE中验证它,但症状是一样的。
我实际上设法采取放火的显示问题的屏幕截图:http://janipeltoniemi.net/ajax.png
在你看到请求循环剧本我写的用于测试目的的权利。它只是在前一个请求完成后用一个新的ID进行请求,所以没有什么特别。控制台中的最后2行显示了我遇到的问题。正如你所看到的,他们都有相同的回应和相同的ID。 md5散列使用md5(microtime(1))
生成,因此如果这两个实际上是具有相同ID的不同请求,它应该是不同的。
循环在该点停止,因为它在最后一个完成时不触发onSuccess事件。我猜它会在另一个请求完成时触发它,但那还没有发生。
任何想法发生了什么?
差点忘了,我使用MooTools的1.2.4
图像中的代码:
r = new Request.HTML();
counter = 0;
//increments the counter and requests hello.php
go = function() {
counter += 1;
//The loop was too fast and producted some side effects when delay was not used
r.get.delay(10, r, [ 'templates/hello.php', { counter: counter } ])
}
//Create an endless loop. When the request from go() is finished, call go()
r.addEvent('success', go);
//Start the endless loop
go();
你必须发布你的代码。 – 2010-07-19 18:13:27
这并不显示什么事件驱动ajax请求本身。 – 2010-07-20 07:45:56
我不知道我明白。问题不在于上述代码的具体情况。这只是一个快速重现问题的方式,并且是所需的所有代码(除了Mootools核心1.2.4)。 我认为这里的问题是通过正确地获取消息,因为我的英语不好,所以让我再试一次: 代码应该在firebug中按原样运行。当前一个完成时,它会启动一个无限循环,并执行另一个请求。在某些时候,请求被复制(检查图像)并且'onSuccess'没有被触发,所以循环停止。请参阅代码中的注释以获取更多信息。 – jpeltoniemi 2010-07-20 10:56:35