rxjs的节流

作者: 姜治宇 | 来源:发表于2021-07-21 15:12 被阅读0次

概述

节流是我们经常会用到的一个知识点,主要是针对高频事件而言,比如resize、scroll、keydown等,节流会降低触发频率,比如你一直按住输入框的某个键,如果不控制触发频率,这个keydown事件会很快将你的浏览器搞崩。
rxjs提供了很好用的api,我们可以直接用来做节流。

代码

我们用scroll滚动事件作为示例,使用节流的目的是降低滚动触发的频率。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        #listCont {
            width: 100%;
            height: 800px;
            overflow: auto;
        }

        .item {
            width: 100%;
            height: 100%;
            background: yellowgreen;
            margin-bottom: 10px;

        }
    </style>
    <script src="https://cdn.bootcdn.net/ajax/libs/rxjs/7.2.0/rxjs.umd.min.js"></script>
</head>

<body>
    <div id="listCont">
        <div class="item"></div>
    </div>
</body>

</html>
<script>
    console.log(rxjs);
    let node = document.getElementById('listCont');
    rxjs.fromEvent(node, 'scroll').pipe(rxjs.operators.debounceTime(500)).subscribe(x => {
        let scrollTop = node.scrollTop;
        let offsetHeight = node.offsetHeight;
        let scrollHeight = node.scrollHeight;
        console.log(scrollTop, offsetHeight, scrollHeight);
        if (scrollTop + offsetHeight >= scrollHeight) {

            console.log('加载新数据');
            loadMore();
        }
    });

    function loadMore() {

        let div = document.createElement('div');
        div.className = 'item';
        node.append(div);
    }
</script>

相关文章

  • rxjs的节流

    概述 节流是我们经常会用到的一个知识点,主要是针对高频事件而言,比如resize、scroll、keydown等,...

  • 01RxJS-响应式编程类库

    rxjs-响应式编程类库)RxJS官网[https://rxjs.dev/] RxJS(Reactive Exte...

  • RxJS

    RxJS官网[https://rxjs.dev/] 1 概述 1.1 什么是 RxJS ? RxJS 是一个用...

  • 浅析Angular之RxJS

    本文结构: 什么是RxJS RxJS有什么特点 RxJS核心概念 什么是RxJS 在javaScript中,我们可...

  • Rxjs系列教程目录

    RxJS-中文文档RxJS-中文指南 rxjs学习入门心得(一)Observable可观察对象rxjs学习入门心得...

  • RxJS 用法(操作符)总结

    RxJS 用法总结 本博客只总结了常用的部分RxJS方法, RxJS可能会让你对响应式编程产生新的理解。RxJS ...

  • rxjs

    RxJS 用法总结 本博客只总结了常用的部分RxJS方法, RxJS可能会让你对响应式编程产生新的理解。RxJS ...

  • RxJS Observable

    前言 RxJS 的 Observable 有点难理解,其实 RxJS 相关的概念都有点难理解。毕竟 RxJS 引入...

  • RxJS Observable - 一个奇特的函数

    前言 RxJS 的 Observable 有点难理解,其实 RxJS 相关的概念都有点难理解。毕竟 RxJS 引入...

  • RxJS官方教程(六) 算子

    RxJS官方教程(一) 概览 RxJS官方教程(二) Observable RxJS官方教程(三) Observa...

网友评论

    本文标题:rxjs的节流

    本文链接:https://www.haomeiwen.com/subject/eksjmltx.html