作用
主要用于做性能优化、运用共享技术有效的支持大量的细粒度对象,避免对象间拥有相同内容造成多余开销! 核心思想:是对象池、使用对象的时候判断对象池是否有、优先从对象池获取对象
// 需求展示表格数据、表格每次展示五条数据并且有分页效果
//创建一个享元类、维护需要展示的五个dom、每次分页都只修改这五个dom元素
class Flyweight{
constructor(){
this.created = [];
}
createdEle(){
let dom = document.createElement('div');
document.getElementById('xxx').appendChild(dom);
create.push(dom)
return dom
}
getEle(){
if(this.created.length < 5){
return this.createdEle()
}else{
let div = this.created.shift();
created.push(div);
return div;
}
}
}
function onLoadPage(page){
let flyweight = new Flyweight();
let pageData = ajax.$get({
page,
size:10
})
for( let i=0; i<pageData.length; i++ ){
flyweight.getEle().innerHTML = pageData[i] //设置数据内容
}
}
let page = 0;
function nextPage(){
onLoadPage(page++)
}