<!DOCTYPE html>
<head>
<script type="text/javascript" src="jquery-1.12.4.min.js"></script>
<script type="text/javascript">
    $(document).ready(function()
    {
        $("#btnWait").click(function()
        {
            CallAsync();
        });
    });
    
    function Task(count)  // 长时间的任务
    {
        for(var k = 1; k <= count; k++)
        {
            var x = Math.sqrt(2017) * Math.sqrt(2016);
        }
    }
    
    function CallAsync()
    {
        var div = "<div id='waitPanel' style='position: fixed; left: 0px;  top: 0px; width: 100%; height: 100%; z-index: 9999; background: silver; opacity: 0.05'></div>";
        $(document.body).append(div);  // 以div块隔离网页与操作者
        $(document.body).css("cursor", "wait");  // 显示一个wait光标

        var observer = $.Deferred(function(defObj)  // 获取一个延迟对象
        {
            setTimeout(function()
            {
                Task(999999999);
                defObj.resolve();  // 任务结束后发送一个done事件通知
            }, 100);  // 100毫秒后执行长时间的任务
        });
        
        observer.done(function()  // 给延迟对象订阅一个done事件
        {
            $("#waitPanel").remove();
            $(document.body).css("cursor", ""); 
            alert("async task done.");
        });
    }
</script>
</head>
<body>
     <input  />
</body>
</html>

 

相关文章:

  • 2021-05-30
  • 2021-10-10
  • 2022-02-26
  • 2021-05-19
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-06-07
  • 2021-11-27
  • 2021-09-19
  • 2022-01-07
相关资源
相似解决方案