欢迎!从2017年开始,将慢慢的不在xmind上写总结了,全部转到博客中!这里将不再随便写写,将继承在xmind的精神,继续前行!!!

快速点击:异步请求数据会在界面中展示多条相同数据

需求描述:

搜索关键字 查找并显示结果,查询并涉及到分页。

代码逻辑:

//监控 input 搜索事件
    $("#search").on('keypress',function(e) {
        var keycode = e.keyCode;
        orderObj.content = $(this).val();
        if(keycode=='13') {
            e.preventDefault();
            pageNum=1;//将页面回到1
            $("#searlist").html("");//清除之前的内容
            getDataList();
            $("#scrollload").addClass("none");
        }
    });
//显示dom内容
$("#searlist").append(htmlStr);
/*
这么做会出现一个问题:那就是点击很快的情况下,页面会重复dom内容
*/

问题分析:

点击2次查询 ,正确的执行顺序是 ABAB(A是清空dom,B 展示查的dom内容)

请求数据需要时间 time2 ,

点击间隔 time1,

如果 time1小于 time2,由于是异步的,就会造成 AABB的执行顺序!!!即数据重复了

解决方式:

加一个变量 判断是否请求结束~~ 依据这个变量 判断是否执行请求

var loadend = false;
//监控 input 搜索事件
    $("#search").on('keypress',function(e) {
        var keycode = e.keyCode;
        orderObj.content = $(this).val();
        if(keycode=='13') {
            e.preventDefault();
            pageNum=1;
            $("#searlist").html("");
            if(loadend){
                getDataList();
            }
            $("#scrollload").addClass("none");
        }
    });
function getDataList(){
      loadend = false
     //.执行查询.....
    // 查询出了结果 将 loadend 变true
     loadend = true

}

 

666

 

posted @ 2018-04-17 15:54  拐进web的奋斗者  阅读(332)  评论(0编辑  收藏  举报