2

我正在使用 jquery ui 对话框让用户知道他的请求正在进行中,而客户端正在处理一些数据。但是,众所周知,ie 的处理时间要比 firefox 长得多。确保进度对话框至少显示最少时间的最佳模式是什么,所以它不只是在 Firefox 中闪烁,而且即使计时器到期,对话框也会一直保持到浏览器完成加工?

4

1 回答 1

3

您可以通过几种方式解决它,尽管它们本质上都是排队的一些衍生物。

例如:

$("#startLink").click(function(){
    var $dialog = $(".dialog");
    $dialog.dialog({
        open: function(e, ui){
            // delay any close operations for at least 2 seconds
            $dialog.queue(function(){
                setTimeout(function(){
                    $dialog.dequeue();
                }, 2000);
            });
            // if you're using jQuery 1.4, you can do this instead
            // $dialog.delay(2000);
        }
    });

    // do some processing here

    $dialog.queue(function(){
        $dialog.dialog('close');
        $dialog.dequeue();
    });
});

无论如何,您真正要做的就是使用内置队列系统确保给定的延迟。您也可以在不使用队列系统的情况下完成它,但这是另一个示例。

于 2010-02-23T21:29:28.693 回答