私はストラットの経験があり、タイルで簡単に実験しました。レイアウト内では、各タイルが個別の jsp ページであることはわかっています。4 つのタイルのそれぞれでボタンを押し、各タイルが (間接的に) 異なる Web サービスを呼び出していたとします。結果が異なるタイミングで取得されるため、タイルは非同期的に更新されますか?
2 に答える
タイルは 1 つの HTML ページの断片にすぎません。手動で追加しない限り、ajax の概念はありません。したがって、1 ページで 4 つのボタンを押すことは、任意の html ページで 4 つのリンクをクリックすることと同じです。ブラウザは適切なリクエストをサーバーに送信します。サーバーが非常に迅速に応答する場合、2 番目のボタンを押す時間すらありません。十分に遅い場合、最初のリクエスト (ブラウザからサーバーへ) はキャンセルされ、2 番目 (3 番目、4 番目) のリクエストが送信されます (次のボタンを押すとキャンセルされます)。
残りはバックエンドの実装に依存します。ある時点で、サーバーは 4 つの要求のうち 3 つのデータを送り返すことができないことに気付くでしょう。最後の (オープン) 応答で提供/表示されるものも、実装によって異なります。Web サービスの応答を保持しているサーバー側の状態がある場合、4 つの結果すべてが表示される可能性があります。1 つの Web サービスがまだ返されていない場合、3 つの結果と 1 つの古いタイルのみが表示される可能性があります。
バックグラウンドのコードに依存すると思います。あなたは、タイルが間接的に Web サービスを呼び出していたと言います。コードでそうしないように指定しない限り、非同期でリフレッシュすると思います。ボタン 1 を押してからボタン 2 を押すとします。アクション 1 が返され、コードは画面を更新する必要があり、ページが更新されることを示しています。アクション 2 が返されると、コードは再び画面を更新します。これが機能する方法だと思いますが、試したことがないので確信が持てません。
ボタン付きの 2 タイルのテスト ページをまとめて、試してみませんか。それはあなたに決定的な答えを与えるはずです。