同时调用xajax / javascript函数

时间:2013-02-07 09:19:20

标签: php javascript function xajax

我想问一下是否有办法同时执行相同的功能.. 看到这个..

function convert_points()
{
    show_loading();
    xajax_ConvertPoints();
    xajax_GetRegularGamingCards();  
}

调用xajax_ConvertPoints时。调用xajax_GetRegularGamingCards后的MILISECOND延迟。我证明了,因为我在每个函数中添加了日志..就像这样......

2013-02-07 17:13:53 || LAUNCHPAD42 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||
2013-02-07 17:13:53 || LAUNCHPAD43 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||
2013-02-07 17:13:53 || LAUNCHPAD44 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||
2013-02-07 17:13:53 || LAUNCHPAD45 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||
2013-02-07 17:13:54 || LAUNCHPAD46 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||
2013-02-07 17:13:54 || LAUNCHPAD47 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 || 
2013-02-07 17:13:54 || LAUNCHPAD48 || TRANSACTION TYPE: CONVERT POINTS || SWCQAZ1 ||

2013-02-07 .54和.53(2013-02-07 17:13:53)差异有所不同。 有没有办法在确切的时间调用它?

3 个答案:

答案 0 :(得分:0)

当你的Javascript代码被执行时,它一次只能从一个线程发生,因此不可能在完全相同的时间执行这两个函数,因为它们是按顺序执行的。

答案 1 :(得分:0)

不可能保证在任何一种语言中以相同的毫秒执行同一行代码。在JavaScript中,您可以在不等待结果的情况下执行功能,并使用setTimeout继续执行其他执行行程

function convert_points(){
    setTimeout(show_loading,0);
    setTimeout(xajax_ConvertPoints,0);
    setTimeout(xajax_GetRegularGamingCards,0);  
}

答案 2 :(得分:0)

Javascript在单个线程中运行,因此在任何情况下它们都将按顺序运行。

是什么让你要求他们同时执行?为什么不通过将两个脚本连接在一起来将它们加入到一个ajax请求中?

另一个选择是通过在其中添加sleep来延迟执行您正在调用的脚本。但我真的不会推荐这个。我建议的最好的方法是让一个脚本做你需要的而不是两个。

如果它是需要数据同时性的数据库操作,您可以使用事务样式命令来确保在存在数据差异的情况下不存在纳秒。这是更好的,因为无论出于何种原因你需要同时调用它们,从最终用户的角度来看,可以非常容易地改变客户端上的javascript。这就是为什么它更好地在服务器上进行。