Promise + Async&Await + Array.reduce + 函数递归 解决网络/接口请求的依次/排队不间断间隔访问

背景

试想在一个需要频繁更新数据的场景(例如:监控、图表类),常规方法是设置一个间隔 N 秒的定时器 setInterval;但是这种方式存在一个问题,当前一个请求时间过长时(超过了间隔时间),后一个请求的接口响应会先于前一个请求,也就是说,将导致旧的数据渲染会覆盖新的数据渲染。

"Promise + Async&Await + Array.reduce + 函数递归 解决网络/接口请求的依次/排队不间断间隔访问"继续阅读

讲讲 Promise/实战

一、什么是 Promise

1.1 Promise 的前世今生

Promise 最早出现在 1988 年,由 Barbara LiskovLiuba Shrira 首创(论文:Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems)。并且在语言 MultiLispConcurrent Prolog 中已经有了类似的实现。

JavaScript 中,Promise 的流行是得益于 jQuery 的方法 jQuery.Deferred(),其他也有一些更精简独立的 Promise 库,例如:QWhenBluebird

"讲讲 Promise/实战"继续阅读

jQuery AJAX 同步和异步的区别

function paginationGo(page){
    sendata = {"page":page};
    $.ajax({
        type:"POST",
        url:"newqc1.asp",
        async:true,
        timeout:10000,
        data:sendata,
        success:function(data){
            //alert(data+"aa");
            $("#qc01").html(data);
        },
        error:function(data){
            alert("连接服务器失败!");
        }
    });
}

当异步关了的时候(同步),即 async: false,传输数据的时候页面会假死,即不可进行其他操作。