現在地: Visual LANSA を使用したWeb アプリケーション > 20. ヒントとテクニック > 20.3 同期 vs 非同期データベース・アクセス > 20.3.1 同期処理

20.3.1 同期処理

同期要求は、要求が処理されている間、ブラウザのすべての処理が停止します。つまり、ユーザーは要求が処理されている間は何もできないことを意味し、アプリケーション・サーバーで大量のデータが処理されていたり、複雑な複数のルーチンが実行されている場合に応答時間に大きな影響を与えるということです。

サーバーからの応答を待つ間、ユーザーがアプリケーションの他の場所へ移動した場合などの異なる状況に対処する必要がないため、コーディングという視点からすると、同期要求の方がよりシンプルになります。

JavaScript はシングル・スレッドで実行されます。つまり処理が完了するまで、ブラウザ のインターフェースは変わりません。次のようなコードを見てみましょう。

 

Evtroutine Handling(#List.ItemGotFocus)
 
   #Details.visible := False
   #GetData.Execute(#Data)
   #Details.visible := True
 
Endroutine
 

このイベントが起動されると、#Details はビューに表示されなくなると思われるかもしれません。ところが、この処理の同期的な性質上、プロパティには FALSE が設定され、TRUE に戻された時に、ユーザー・インターフェースを更新する機会が与えられます。

ただし、ユーザー・インターフェースのロック中のマウス・クリックは、現在の一連の処理が完了した時点で処理されることも承知しておいてください。