AJAX数据锁

  • 前后端的交互有网络延时,有的时候数据迟迟未来,用户就反复点击按钮发送请求,明明用户只需要一次请求就够了,点了那么多下,服务器要返回那么多次请求,怎么办呢?
  • 可以在前端的JS中加一个数据锁。
  • 方法如下:
<script>
    var dataLock = true;            //初始的数据锁是打开的
    btn.addEventListener("click", function() {
        if (!dataLock) {            //看看数据锁,如果是锁上的,这次点击就没用,退出函数。
            return;                 //如果是打开状态,就执行下面的代码
        }
        dataLock = false;           //先把数据锁锁上,然后去发送请求
        xhr.onreadystatechange = function() {
            if (xhr.readyState === 4) {
                dataLock = true;    //数据到来后,打开数据锁
            }
        }
    })
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容