确保至少在某个最短时间内显示jquery进度对话框

时间:2010-02-23 20:45:57

标签: jquery timer jquery-ui-dialog progress

我正在使用jquery ui对话框让用户在客户端处理某些数据时知道他的请求正在进行中。但是,众所周知,对于ie来说,比firefox需要更长的时间。确保进度对话框显示至少一段最短时间的最佳模式是什么,因此它不仅仅在firefox中闪存,而且即使计时器到期,对话也会一直保持到浏览器完成为止处理?

1 个答案:

答案 0 :(得分: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();
    });
});

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