功能太快了?所以他们被忽略了?

时间:2009-12-01 13:57:22

标签: ajax performance

使用函数,可以使用Ajax,PHP,MySQL和一些HTML / CSS调用div-popover并填充动态数据。一切都很好。

当我想要删除列表中的条目时,只需弹出它就可以正常运行。当我发送我的列表的更新请求时,它也按照我想要的方式发送。但是,当我在彼此之后立即调用delete(); update();时,我的第一个函数会以某种方式被跳过。

当我在这两个函数中放置alert()'s时,我看到两个函数都被执行了,脚本在我的ajax函数,PHP ajax处理程序中运行良好,并将结果返回给用户,并且所有的警报都是进展顺利!

所以我的问题是,我的功能太快了吗?或者我在这里缺少什么导致非删除?

解决方案我已将update来电转移到xmlHttp.resonseText功能delete之后的行。以这种方式,第二个函数调用在完成第一个函数后执行。谢谢大家!

3 个答案:

答案 0 :(得分:5)

我的猜测是你没有想过AJAX中的A.它代表异步。这意味着当您执行XmlHttpRequest调用时,它将在后台执行。即在您调用delete();后,脚本将立即继续并执行update();

答案 1 :(得分:3)

听起来两个方法自AJAX以来同时(异步)执行。

你希望它们同步出现。

有关详细信息,请参阅此模式页面... Ajax patterns

答案 2 :(得分:3)

当ajax调用正在进行时,javascript将执行下一个语句。大多数使用ajax的方法都有一个可以调用的完整函数,因此在ajax调用之后执行的代码只能在之后调用。

我没有使用过PHP,但可能值得研究。