Infinite无限加载模块
Infinite无限加载是长列表的一种展示方式,该模块将按需加载列表内容;支持自动加载列表和手动触发加载列表,触发次数越多,加载的列表将越长,当然视窗之外的列表项使用content-visibility属性,对内存和性能做了优化处理;无限滚动也属于懒加载范畴,比较适合中小型列表。
常规用法
常规用法是通过异步地址获取节点列表,异步地址可以是一个静态页面、动态页面或json路径。
因为是异步请求,所以通常需要配合设置contType
和contData
参数,甚至使用ajax
参数。
- 输出
- HTML
- JS
-
-
-
new ax.Infinite('#demo01',{ content:['https://req.axui.cn/v3/html/his01.html','https://req.axui.cn/v3/html/his02.html','https://req.axui.cn/v3/html/his03.html'], contType:'async', });
从Json获取节点数据
参数content
传入一个json
地址数组,并设置参数contType:'async'
,请求到的json
数据要求一个数组,数组中的每一项将被当做渲染节点的数据,所以此时还需要搭配使用tplStr
和tplEng
两个参数。
tplEng
默认是本框架的renderTpl
,用户可以自定义其他的模版引擎函数。
- 输出
- HTML
- JS
-
-
-
new ax.Infinite('#demo21',{ content:['https://req.axui.cn/v3/json/food01.json','https://req.axui.cn/v3/json/food02.json','https://req.axui.cn/v3/json/food03.json'], contType:'async', tplStr:`<li>{{this.id}}-{{this.label}}</li>`, });
从节点获取DOM列表
参数content
如果是一个节点数组,那么将从节点获取其子节点作为单页的节点列表。
- 输出
- HTML
- JS
-
-
-
let dom01 = document.querySelector('#dom01'), dom02 = document.querySelector('#dom02'), dom03 = document.querySelector('#dom03'); new ax.Infinite('#demo02',{ content:[dom01,dom02,dom03] });