2012-01-11 5 views
0

javascript HTML5 phonegapアプリケーションを作成しています。 私はSQLiteを使ってデータを保存しています。 パフォーマンスのために、私は非同期にデータベースの挿入を行っています。つまり、前のデータベース操作のコールバックで次の操作を呼び出す必要はありません。 内部的には、javascriptは各操作のためのワーカーを作成しているので、話すためにはマルチスレッドであると信じています。実行中のjavascriptワーカーを検出する

問題は、すべての作業者が作業を完了したことをどのように知っていますか?例えば、すべてのデータが保存されたことをユーザに伝えるためには?

+0

完了イベントのコールバック機能があるはずです –

+0

返事ありがとうございましたJani ...実際は私の説明から、1つのことが別のものに起こらなければならないシリアル操作の何らかの種類に私を強制するので、私はそれを避けています。さて、私が検討している一つの方法は、完成時に開始したり減ったりする作業の数を数えることです。しかし、まだ実行中のすべての作業者を知る方法があれば、どんな場合でも良いでしょう。 –

答えて

1

DBの挿入を非同期で実行するようにキューイングしていて、後でチェックして、がすべての要求が完了したかどうかを確認したい場合があります。あなたがする必要はありませんので、あなたはrunningTasksのvaraibleをテストし、設定する際に競合状態を心配する必要があるだろうが、私の知る限り、Javascriptのが唯一のシングルスレッドとして実装されている別の言語で

function asyncTask() { 
     // 
     // Do real work here 
     // 
     runningTasks-- 
} 


//in your init section, setup a global variable to track number of tasks  
runningTasks = 0 

//when you need to create a new task, increment the counter 
runningTasks++; 
setTimeout (asyncTask,1); 



if (runningTasks > 0) { 
    //something still running 
} else { 
    //all tasks are done. 
} 

:私はこのような何かをするだろうそれを心配してください。

関連する問題