2

バックグラウンド

休止状態でSpring MVCを使用しています

jquery コード スニペット

$(document).ready(function() {
    $( "#dialog" ).dialog();
    $('#tableDiv').load('genCityInqGV.htm?type=0&number=1');
    $( "#dialog" ).dialog('close');
} );

@Controller で

    @RequestMapping(value = "/genCityInqGV", method = RequestMethod.GET)
public String genCityInqGV() {
    try {
        while(true){
            System.out.println("Print");
        }
    } catch (Exception ex) {
        log.error("Exception.." + ex);
    }

    return "gen/genCityInqGV";
}

コントローラーで、ダイアログ機能が機能しているかどうかを確認する有限ループを記述しますか? しかし、ダイアログはまだ閉じようとしています。これは、次のステートメントが実行されることを意味します。

$( "#dialog" ).dialog('close');

次の後に

$('#tableDiv').load('genCityInqGV.htm?type=0&number=1');

画面を確認すると、次のステートメントがまだ印刷されています

System.out.println("Print");

バックエンドの load 関数のプロセスでさえまだ処理中なので、なぜ dialog('close') ステートメントが実行されるのか。

私を更新してください!

4

1 に答える 1

1

原則は変わらないはずなので、Spring MVC を使用する前のコードはどのようなものでしたか。

jquery load() は非同期にロードするため、ロードが完了する前に次のステートメントを実行できます。

おそらく、ロード後にコールバックを使用してこれを回避できます (おそらく、これは以前に行ったことでしたか?)。jQuery を使用して同期的にページを読み込む方法 をご覧ください。

試す:

$('#tableDiv').load('genCityInqGV.htm?type=0&number=1', function(){
    $( "#dialog" ).dialog('close');
});
于 2013-06-01T15:21:08.680 に答える