瀑布流介绍及实现原理:

  瀑布流是一种页面布局,页面上也有多等宽的块(块就页面内容),每一块都是绝对定位(absolute),每个块排列的方式如下:寻找现在高度最小的列,把该块定位到该列下方。需要知道,浏览器的可视区域不尽相同,因此布局之前我们总要计算得到当前页面可以容下得列数,计算方法为:页面总宽度/图片宽度,将结果向下取整即可。

  经过以上处理,我们可以得到每列高度都差不多得页面,也不至于每一列高度差距太大。另外,当我们将网页滚动到页面底部时,我们要加载出新的块放入网页,新的块布局方式仍与之前一致。

下面附上实现效果:

代码:

html:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8" />
 5         <title></title>
 6         <link rel="stylesheet" type="text/css" href="css/index.css"/>
 7         <script src="js/index.js" type="text/javascript" charset="utf-8"></script>
 8     </head>
 9     <body>
10         <div class="container" id="box">
11             <div class="item"><img src="img/1.jpg"></div>
12             <div class="item"><img src="img/2.jpg"></div>
13             <div class="item"><img src="img/3.jpg"></div>
14             <div class="item"><img src="img/4.jpg"></div>
15             <div class="item"><img src="img/5.jpg"></div>
16             <div class="item"><img src="img/6.jpg"></div>
17             <div class="item"><img src="img/7.jpg"></div>
18             <div class="item"><img src="img/8.jpg"></div>
19             <div class="item"><img src="img/9.jpg"></div>
20             <div class="item"><img src="img/10.jpg"></div>
21             <div class="item"><img src="img/11.jpg"></div>
22             <div class="item"><img src="img/12.jpg"></div>
23             <div class="item"><img src="img/13.jpg"></div>
24             <div class="item"><img src="img/14.jpg"></div>
25             <div class="item"><img src="img/15.jpg"></div>
26             <div class="item"><img src="img/16.jpg"></div>
27             <div class="item"><img src="img/17.jpg"></div>
28             <div class="item"><img src="img/18.jpg"></div>
29             <div class="item"><img src="img/19.jpg"></div>
30             <div class="item"><img src="img/20.jpg"></div>
31         </div>
32     </body>
33 </html>

css:

 1     * {
 2         margin: 0;
 3         padding: 0;
 4         position: relative;
 5     }
 6
 7     img {
 8         display: block;
 9         width: 250px;
10     }
11
12     .item {
13         box-shadow: 2px 2px 2px #999;
14         position: absolute;
15     }
16     

js:

 1 var i = 0;//已显示的图片数
 2 img_width=250;//图片宽度
 3 var gap = 10;// 每张图片的间隔 为10px
 4 var datas=[
 5     "C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\1.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\10.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\11.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\12.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\13.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\14.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\15.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\16.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\17.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\18.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\19.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\2.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\20.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\21.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\22.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\23.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\24.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\25.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\26.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\27.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\28.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\29.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\3.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\30.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\31.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\32.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\4.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\5.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\6.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\7.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\8.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\9.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\1.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\10.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\11.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\12.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\13.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\14.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\15.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\16.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\17.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\18.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\19.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\2.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\20.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\21.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\22.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\23.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\24.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\25.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\26.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\27.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\28.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\29.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\3.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\30.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\31.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\32.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\4.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\5.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\6.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\7.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\8.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\9.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\1.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\10.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\11.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\12.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\13.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\14.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\15.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\16.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\17.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\18.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\19.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\2.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\20.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\21.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\22.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\23.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\24.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\25.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\26.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\27.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\28.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\29.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\3.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\30.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\31.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\32.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\4.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\5.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\6.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\7.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\8.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\9.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\1.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\10.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\11.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\12.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\13.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\14.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\15.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\16.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\17.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\18.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\19.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\2.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\20.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\21.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\22.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\23.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\24.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\25.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\26.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\27.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\28.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\29.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\3.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\30.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\31.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\32.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\4.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\5.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\6.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\7.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\8.jpg","C:\\Users\\crazy\\Documents\\HBuilderProjects\\瀑布流 - 副本\\img\\9.jpg"
 6 ]//图片路径数组,用于模拟ajax请求获得的图片,
 7
 8     window.onload = function() {
 9         var box = document.getElementById('box');
10         var items = box.children;//得到子元素集合
11
12         waterFall();
13
14         //对num张照片进行瀑布流布局
15         function waterFall() {
16
17             //得到列数 = 页面可视区域宽度 / 图片的宽度
18             var pageWidth = getClient().width;
19             var itemWidth = img_width;
20             var columns = parseInt(pageWidth / (itemWidth + gap));
21
22             var arr = [];//用于判断最小高度的数组
23             for (var i = 0; i < items.length; i++) {
24                 if (i < columns) {
25                     // 对第一行图片进行布局
26                     items[i].style.top = 0;
27                     items[i].style.left = (itemWidth + gap) * i + 'px';
28                     arr.push(items[i].offsetHeight);
29                 } else {
30                     // 对接下来的图片进行定位
31                     // 首先要找到数组中最小高度和它的索引
32                     var minHeight = arr[0];
33                     var index = 0;
34                     for (var j = 0; j < arr.length; j++) {
35                         if (minHeight > arr[j]) {
36                             minHeight = arr[j];
37                             index = j;
38                         }
39                     }
40                     // 设置下一行的第一个盒子位置
41                     // top值就是最小列的高度 + gap
42                     items[i].style.top = arr[index] + gap + 'px';
43                     // left值就是最小列距离左边的距离
44                     items[i].style.left = items[index].offsetLeft + 'px';
45
46                     // 修改最小列的高度
47                     // 最小列的高度 = 当前自己的高度 + 拼接过来的高度 + 间隙的高度
48                     arr[index] = arr[index] + items[i].offsetHeight + gap;
49                 }
50             }
51         }
52         // 页面尺寸改变时实时触发
53         window.onresize = function() {
54             waterFall();
55         };
56
57
58         // 当加载到底部时,从datas读取30张图片生成img并放入div,然后重新布局
59         window.onscroll = function() {
60             if (getClient().height + getScrollTop() >= items[items.length - 1].offsetTop) {
61                 var j =0;
62                 while(j<30&&i<datas.length){
63                     var div = document.createElement("div");
64                     div.className = "item";
65                     div.innerHTML = '<img src="' + datas[i] + '" alt="">';
66                     div.firstChild.style.width=img_width;
67                     box.appendChild(div);
68                     i++;
69                     j++;
70                 }
71                 waterFall();
72             }
73
74         };
75
76     };
77
78     // clientWidth 处理兼容性:获得浏览器可视区域的宽和高
79     function getClient() {
80         return {
81             width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
82             height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
83         }
84     }
85     // scrollTop兼容性处理 :获得浏览器可视区域 距 整个html文档顶部的距离
86     function getScrollTop() {
87         return window.pageYOffset || document.documentElement.scrollTop;
88     }

转载于:https://www.cnblogs.com/crazyechoaoo/p/10671866.html

JavaScript——原生js实现瀑布流相关推荐

  1. react 原生html 插件,纯原生JS的瀑布流插件Macy.js,前端必备插件

    这是一款非常轻量级的纯原生JS的瀑布流插件--Macy.js,如今图片和视频网站非常多,非常适应瀑布流这样的布局方式来呈现给用户. 所以,选择一款简单易用的瀑布流js插件,可以让前端工程师快速开发出漂 ...

  2. html5 原生插件,前端必备插件之纯原生JS的瀑布流插件Macy.js

    这是一款非常轻量级的纯原生JS的瀑布流插件--Macy.js,如今图片和视频网站非常多,非常适应瀑布流这样的布局方式来呈现给用户. 这款流布局JS插件仅有4KB的大小,可以说是非常轻量级的哦.配置也比 ...

  3. 原生JS实现瀑布流效果

    前两天通过B站在极客学院学习了JS动态瀑布流效果:主要是HTML+CSS控制样式,通过JS实现全局瀑布流样式,以及通过访问自定义的JSON字符串,实现图片无限加载:现对其代码进行整理,供日后学习参考. ...

  4. 纯原生JS的瀑布流插件Macy.js

    官网地址: http://macyjs.com/ github地址:https://github.com/bigbitecreative/macy.js

  5. bootstrap+masonry.js写瀑布流

    最近在用bootstrap写一个网站,其中有个图文展示的页面要用到瀑布流的效果. 因为项目要求,项目要以bootstrap为基准,不准私自添加内联样式.内部样式,所以,自己写瀑布流就不行了,所以,根据 ...

  6. 通过JS实现瀑布流效果

    JS实现瀑布流效果 效果图 HTML部分以及css样式 <head><meta charset="UTF-8"><meta http-equiv=&q ...

  7. jaliswall.js图片瀑布流插件

    下载地址 jaliswall.js图片瀑布流插件,jQuery响应式瀑布流布插件jaliswall dd:

  8. 【Javascript Demo】图片瀑布流实现

    瀑布流就是像瀑布一样的网站--丰富的网站内容,特别是绚美的图片会让你流连忘返.你在浏览网站的时候只需要轻轻滑动一下鼠标滚轮,一切的美妙的图片精彩便可呈现在你面前.瀑布流网站是新兴的一种网站模式--她的 ...

  9. JavaScript实现图片的瀑布流效果

    在一些网站中会用到图片的瀑布流效果,图片的宽度固定而高度不固定,对这样的图片进行排列,具体实现如下: .cont{margin: 0 auto;position: relative;} .box{fl ...

最新文章

  1. All-in-One 模式安装 KubeSphere 异常问题记录
  2. bat脚本登陆ftp服务器
  3. 【Linux】一步一步学Linux——echo命令(203)
  4. 这是我看过关于 volatile 最好的文章
  5. mybatis-plus sql注入原理
  6. from mysql partition select_爬虫(九十九)mysql详解二
  7. 清浮动,防止上下margin重叠(浏览器顶部空白崩溃)
  8. cpanel java_Cpanel是什么
  9. 送给你,PBA商业分析指南(全书下载)
  10. 操作系统课程设计----模拟文件管理系统(c语言)
  11. c++复习日记3 模板和流
  12. linux内核零拷贝技术
  13. android 自动 创建文件夹,android - 如何在SD卡上自动创建目录
  14. c语言转换字符类型,C语言基础之数据类型转换
  15. 喜忧参半的电子烟 究竟是不是一个靠谱的创业机会?
  16. ipad显示portal服务器获取不,苹果portal认证失败原因合集
  17. java spring 中 每小时一次_spring 定时任务的 执行时间设置规则
  18. Python TypeError: cat() takes no arguments
  19. 行人重识别 (Re-ID)数据集介绍
  20. Internet Download Manager浏览器插件安装方法

热门文章

  1. MPLS 次末跳弹出配置_weblogic的安装与配置
  2. 95-872-050-源码-CEP-CEP之模式流与运算符
  3. 【Flink】Flink 1.12.2 Task的调度 源码
  4. 【高并发】怎么演示公平锁和非公平锁?
  5. 【redis】redis实用Utils
  6. 【正则表达式】正则表达式匹配SQL中的函数名
  7. 95-240-060-源码-state-状态生存时间(TTL)
  8. 95-290-055-源码-内存管理-HybridMemorySegment
  9. 【impala】impala的shell命令使用
  10. Flutter时间工具类封装