私は現在、大学の食堂のメニュー プランを表示するアプリを作成しています。プラットフォームに依存しないようにするために、Phonegap を使用します。XML 解析は JQuery を使用して行われ、レイアウトは JQuery Mobile で生成されます。
メニューの XML ファイルの解析には、motorola defy で約 1 ~ 2 秒かかります。たとえば、ラジオ ボタンをクリックして場所を別のカフェテリアに変更すると、GUI はこの秒間フリーズします。私は JavaScript でワーカー スレッドの概念を見つけ、XML データの解析をワーカー スレッドに委任することにしました。残念ながら、JQuery が Worker Threads 内で機能しないことを確認する必要がありました :-( その後、プラグイン JQuery.hive を見つけました。これで問題が解決したようです。現在、hive 環境内でスレッドを作成し、メッセージを送信し、内部で処理します。残念ながら、これは Firefox でのみ機能し、私の Android/Phonegap アプリケーションでは機能しません。
これは私がワーカーを生成する場所です:
$(function() {
$("#mydiv").append("Start |");
$.Hive.create({
worker : 'Worker_Parser.js',
receive : function(data) {
$("#mydiv").append('RECEIVED MESSAGE: ' + data.message + ' | ');
}
});
$("#mydiv").append("Worker generated | ");
});
$.Hive.get(0).send("test");
$("#mydiv").append("End ");
これはワーカー スレッドです。
importScripts('jquery.hive.pollen.js');
$(function (data) {
$.send("test");
});
Firefox ショー
Start | Worker generated | End | RECEIVED MESSAGE: test |
Android Broswer は、スレッドを開始しようとするとスクリプトをキャンセルし、次のようにのみ表示します。
Start |
JQuery.hive は Android で動作するはずですか? GUI をフリーズせずに XML を解析するという私の問題を解決するより良い方法はありますか?
前もって感謝します、
トム