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");

即使后端加载函数的过程仍在处理中,为什么要执行 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 回答