5

ユーザーがパレットの重量を入力するWebベースのアプリケーション(大型貨物機の重量とバランス)を作成しています。個々のパレットの重量を入力する場合、その重量を受け入れることができるかどうかを判断するために、いくつかのチェックを行う必要があります。必要な計算サイクルの観点から、チェックはすべて比較的簡単です。1つはそうではありません。私が理解しているように、JavaScriptはシングルスレッドです。つまり、ユーザーが別のパレット位置にウェイトを入力し始めると、前のウェイトが完全に処理されるまでロックアウトされます。

ユーザーが体重を入力するたびに待機させる余裕はありません(アプリは現在、最後のチェックを適切に行っていないため、現時点ではユーザーはこれを行う必要はありません)。現在、すべての重みが入力され、ユーザーがボタンをクリックしてそのことを示すまで、計算量の多い最後のステップを実行しないことを考えています。ただし、これにより、どの重みが最初に問題を引き起こしたか、複数の重みが寄与する可能性がある問題、最後まで待たなければならない場合に分類するのが難しい問題について、ユーザーはすぐにフィードバックを得ることができなくなります。

このトピックに関する私のGoogle検索はある程度役に立ちましたが、ここで、ジレンマに対する最新の解決策について考えられるアイデアを求めています。どんな提案でも大歓迎です。問題のコンテキストは、http://terryliittschwager.com/WB/JWB.phpにアクセスして航空機を選択することで確認できます。

4

2 に答える 2

2

クライアント側で実行したい場合は、WebWorkersを調べることをお勧めします。これらは、メイン(DOM)JSスレッドとは別のスレッドで実行されます。(もちろん)すべてのブラウザーでサポートされているわけではありませんが、現在Chrome、FF、Safari、およびIE10でサポートされています。

編集:WebWorkersのMDNは開始するのに適した場所です。

于 2012-05-23T20:28:01.733 に答える
1

長いものにはAjaxを使用し、残りにはjavascriptを使用できます。または、可能であれば計算を分割して、一度に少しずつ実行します。 http://www.sitepoint.com/multi-threading-javascript/

于 2012-05-23T20:30:40.823 に答える