0

同じ機能を同時に実行する方法はないかと思います。こちらをご覧ください。

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)MILISECONDSには違いがあります。正確な時間にそれを呼び出す方法はありますか?

4

3 に答える 3

0

Javascriptコードを実行すると、一度に1つのスレッドからしか発生しないため、これら2つの関数は順番に実行されるため、まったく同時に実行することはできません。

于 2013-02-07T09:27:20.687 に答える
0

どの種類の言語でも、同じコード行が同じミリ秒で実行されることが保証されることは不可能です。JavaScriptでは、結果を待たずに関数を実行し、setTimeoutを使用して他の実行行に進むことができます。

function convert_points(){
    setTimeout(show_loading,0);
    setTimeout(xajax_ConvertPoints,0);
    setTimeout(xajax_GetRegularGamingCards,0);  
}
于 2013-02-07T09:29:36.650 に答える
0

Javascriptはシングルスレッドで動作するため、どのシナリオでも順次実行されます。

それらを同時に実行する必要があるのはなぜですか?2つのスクリプトを結合して、それらを1つのajaxリクエストに結合してみませんか?

もう1つのオプションは、スクリプトなどを挿入して、呼び出しているスクリプトの実行を遅らせることですsleep。しかし、私は本当にこれをお勧めしません。私が提案する最善の方法は、両方ではなく、1つのスクリプトに必要なことを実行させることです。

データの同時性を必要とするDB操作の場合は、transactスタイルのコマンドを使用して、データの不一致があるナノ秒がないことを確認できます。何らかの理由で同時に呼び出す必要がある場合は、エンドユーザーの観点からクライアント側でJavaScriptを非常に簡単に変更できるため、これはより優れています。これが、サーバー上でそれを行う方が良い理由です。

于 2013-02-07T09:58:17.010 に答える