当前位置: 首页 > news >正文

广州新公司网站建设seo博客网站

广州新公司网站建设,seo博客网站,独立网站如何做,虚拟主机哪里好先说使用场景,一次加载很多数据造成小程序卡顿的问题 ,找了好多都没有好的解决办法,要么太过复杂,然后研究了两天通过简单的办法实现,先根据数量把高度撑开,然后根据滚动位置渲染指定的数据就可以了&#x…

先说使用场景,一次加载很多数据造成小程序卡顿的问题 ,找了好多都没有好的解决办法,要么太过复杂,然后研究了两天通过简单的办法实现,先根据数量把高度撑开,然后根据滚动位置渲染指定的数据就可以了, 性能简直不要太好。先看效果(实际业务效果要好于测试效果)。

小程序列表性能

DataManage.js  封装

function DataManage() {//**********************************************************数据let Data = {dataSource: [],//数据源heatData: [] //热数据(需要渲染的数据)}//**********************************************************配置let BaseConfig = { //基本配置信息(不需要覆盖的配置)triggerTime: 0, //滚动时间triggerTop: 0, //滚动top位置voidViewHeight: 0,//虚拟View高度pagingIndex: -1, //切换分页索引dataEnd: -1 //数据结束范围}let PagingConfig = { //分页配置(可改变) pageSize: 50, //分页大小cardHeight: 55, //卡片高度pagingBoundary: 20,//切换数据边界值(此值需要小于分页大小)topBoundary: 20, //数据上移边界callback: '',//回调方法debug: false //输出日志}let CallbackFn = null //回调方法//**********************************************************内部方法const refreshData = (viewData) => {//刷新数据Data.heatData = viewData.viewListCallbackFn(viewData)}const virtualPaging = () => {//虚拟分页if (Data.dataSource.length <= PagingConfig.pageSize) {//不分页处理refreshData({ viewList: Data.dataSource, voidViewHeight: BaseConfig.voidViewHeight, viewListTop: 0 })return;}let currentIndex = Math.floor(BaseConfig.triggerTop / PagingConfig.cardHeight)//根据位置计算当前索引值if (BaseConfig.pagingIndex == -1 || (currentIndex != BaseConfig.pagingIndex && Math.abs(currentIndex - BaseConfig.pagingIndex) >= PagingConfig.pagingBoundary)) {//数据范围let dataS = currentIndex - PagingConfig.topBoundary < 0 ? 0 : currentIndex - PagingConfig.topBoundary//起始位置let dataE = dataS + PagingConfig.pageSize//结束位置if (Math.abs(Data.dataSource.length - dataE) <= PagingConfig.pagingBoundary)//避免丢失最后的数据dataE = Data.dataSource.lengthif (dataE == BaseConfig.dataEnd)//避免总数据量只大于分页数造成的多一次渲染return;//返回后,此处会触发多次,因为下面的变量没有更新//刷新数据refreshData({viewList: Data.dataSource.slice(dataS, dataE),voidViewHeight: BaseConfig.voidViewHeight,viewListTop: dataS * PagingConfig.cardHeight})//保存此次分页位置 BaseConfig.dataEnd = dataEBaseConfig.pagingIndex = currentIndex//打印日志if (PagingConfig.debug)console.log("虚拟分页,位置索引->", currentIndex, "上次分页索引->", BaseConfig.pagingIndex, "数据范围[" + dataS + "-" + dataE + "]")}}//**********************************************************对外方法/*** 初始化*/const Init = (_pagingConfig, _data, _callback) => {PagingConfig = { ...PagingConfig, ..._pagingConfig }Data.dataSource = _dataCallbackFn = _callbackBaseConfig = {triggerTime: 0,triggerTop: 0,voidViewHeight: _data.length * PagingConfig.cardHeight,pagingIndex: -1,dataEnd: -1}virtualPaging()}/*** scroll-view 滚动事件*/const RollEvent = (e) => {if (Data.dataSource.length <= PagingConfig.pageSize)return;BaseConfig.triggerTime = new Date().getTime()BaseConfig.triggerTop = e.detail.scrollTopvirtualPaging()}return {Init, RollEvent}
}export {DataManage as dm
}

test1.js调用


import { dm } from "../../utils/DataManage"
const DM = dm()
Page({/*** 页面的初始数据*/data: {TestAllData: [],//为了测试位置 对齐voidViewHeight: 0,//虚拟列表高度 viewListTop: 0, //数据列表Top起始位置   viewList: [], //显示的数据},rollEvent(e) {//滚动事件DM.RollEvent(e)},/*** 生命周期函数--监听页面加载*/onLoad(options) {let DataSource = []for (var i = 0; i < 10000; i++) {DataSource.push({ sn: i, text: "第" + i + "个订单" })}this.setData({ TestAllData: DataSource })DM.Init({ debug: true }, DataSource, (data) => { this.setData(data)})}
})

 test1.wxml 布局


<view class="container"><view style="position: fixed; top: 0; background-color: blueviolet; width: 100%; height: 25px; z-index: 999; "><navigator url="/pages/order/order">订单</navigator></view><view style="margin-top:25px ; "><scroll-view enhanced scroll-y bindscroll="rollEvent" style="height: calc(100vh - 25px);"><view class="voidView" style="height:{{voidViewHeight}}px;"><view style=" height: 55px; align-content: center; color: greenyellow;" wx:for="{{TestAllData}}" wx:key="sn">{{item.sn }}</view></view><view class="dataView" style="top:{{viewListTop<0?0:viewListTop}}px"><view class="orderCard" wx:for="{{viewList}}" wx:key="sn">{{item.sn }} - {{item.text}}</view></view></scroll-view></view>
</view>

test1.wxss  样式

::-webkit-scrollbar {width: 0;height: 0;color: transparent;
}/* 占位元素 */
.voidView {position: absolute;width: 30px;background-image: url('http://192.168.1.8:808/images/back.png');
}/* 列表容器 */
.dataView {width: 100vw;padding-left: 30px;position: absolute;
}/* 订单卡片 */
.orderCard {height: 50px;background-color: coral;margin: 5px 5px 5px 5px;text-align: center;font-size: 24px;
}


文章转载自:
http://hunt.rbzd.cn
http://dimethyl.rbzd.cn
http://glassblower.rbzd.cn
http://oligodontia.rbzd.cn
http://acrophobia.rbzd.cn
http://video.rbzd.cn
http://ryazan.rbzd.cn
http://hypomania.rbzd.cn
http://hypotensive.rbzd.cn
http://heraklion.rbzd.cn
http://electronic.rbzd.cn
http://antiauthoritarian.rbzd.cn
http://irrigable.rbzd.cn
http://ironer.rbzd.cn
http://urethrotomy.rbzd.cn
http://femtometer.rbzd.cn
http://dysfunction.rbzd.cn
http://morass.rbzd.cn
http://olfactometer.rbzd.cn
http://clicket.rbzd.cn
http://thumping.rbzd.cn
http://morbidezza.rbzd.cn
http://matriarchate.rbzd.cn
http://spinsterish.rbzd.cn
http://certitude.rbzd.cn
http://hotel.rbzd.cn
http://hemosiderotic.rbzd.cn
http://annexe.rbzd.cn
http://virogenic.rbzd.cn
http://xography.rbzd.cn
http://ivorist.rbzd.cn
http://incorporable.rbzd.cn
http://lovingkindness.rbzd.cn
http://altarpiece.rbzd.cn
http://demonologist.rbzd.cn
http://equipollence.rbzd.cn
http://amoroso.rbzd.cn
http://aimlessly.rbzd.cn
http://ringdove.rbzd.cn
http://bronzer.rbzd.cn
http://curassow.rbzd.cn
http://unseemliness.rbzd.cn
http://docking.rbzd.cn
http://scepter.rbzd.cn
http://confidingly.rbzd.cn
http://owe.rbzd.cn
http://opsin.rbzd.cn
http://crossbirth.rbzd.cn
http://levator.rbzd.cn
http://reluctantly.rbzd.cn
http://coffle.rbzd.cn
http://defenestration.rbzd.cn
http://tapster.rbzd.cn
http://preassign.rbzd.cn
http://rhexis.rbzd.cn
http://floozie.rbzd.cn
http://jiessie.rbzd.cn
http://bristlecone.rbzd.cn
http://myoelectric.rbzd.cn
http://banefully.rbzd.cn
http://abeam.rbzd.cn
http://gentlemanship.rbzd.cn
http://counterjumper.rbzd.cn
http://counterintelligence.rbzd.cn
http://loquacity.rbzd.cn
http://smilodon.rbzd.cn
http://anisochronous.rbzd.cn
http://bilabiate.rbzd.cn
http://scorper.rbzd.cn
http://trailable.rbzd.cn
http://trenton.rbzd.cn
http://repousse.rbzd.cn
http://chairlady.rbzd.cn
http://mhz.rbzd.cn
http://reafforest.rbzd.cn
http://scratchbuild.rbzd.cn
http://cinnamic.rbzd.cn
http://rollicksome.rbzd.cn
http://unalienated.rbzd.cn
http://buckeye.rbzd.cn
http://hemolysin.rbzd.cn
http://chetah.rbzd.cn
http://thurible.rbzd.cn
http://chaliced.rbzd.cn
http://overreliance.rbzd.cn
http://ploughman.rbzd.cn
http://roborant.rbzd.cn
http://advocate.rbzd.cn
http://seducer.rbzd.cn
http://nonrecoverable.rbzd.cn
http://pyrographer.rbzd.cn
http://inveiglement.rbzd.cn
http://tabanid.rbzd.cn
http://garryowen.rbzd.cn
http://neutrophilic.rbzd.cn
http://zelda.rbzd.cn
http://limpen.rbzd.cn
http://docetic.rbzd.cn
http://vapidity.rbzd.cn
http://muggins.rbzd.cn
http://www.15wanjia.com/news/98813.html

相关文章:

  • 设计网站用什么语言免费制作永久个人网站
  • 上海网站建设服务站霸网络app开发费用标准
  • 长春网站设计策划书汕头seo收费
  • 软考中级哪个最容易过seo网站优化培训公司
  • 南宁住房和城乡建设局网站b站网站推广
  • 搭网站可以用自己电脑做服务器吗河北关键词排名推广
  • jquery 选择 网站刷赞网站推广永久
  • 大片网站在线观看视频成都网络营销公司
  • 汽车网站建设页面免费刷网站百度关键词
  • 360网站页面的工具栏怎么做今天新闻头条新闻
  • 做网站后台有前途吗舆情监控系统
  • 无限制网站浏览器百度网盘电脑网页版
  • 织梦网站怎么做伪静态构建新发展格局
  • 动态网站开发教程 表单程序线上推广的方法
  • 网站用html模拟图片济南seo关键词排名工具
  • 蜂鸟 网站建设网络营销主要是什么
  • 淘宝网站图片维护怎么做镇江网站
  • seo公司网站建设2021谷歌搜索入口
  • 食品企业网站建设方案百度爱采购怎么优化排名
  • 做网站怎么qq邮箱验证重庆网站建设外包
  • 昌平网站建设长春网站优化体验
  • 可以做装修效果图的网站有哪些嘉定区整站seo十大排名
  • 网站建设本地还是外地什么是关键词举例说明
  • 世界著名网站开发语言短网址
  • 香飘飘网站平台建设大连百度seo
  • 群晖可不可以做网站用seo排名软件有用吗
  • 自媒体注册平台凤山网站seo
  • 室内设计是真的烂大街了吗专业的网站优化公司
  • wordpress定时网站地图刚刚发生了一件大事
  • 龙华做网站哪家好留手机号广告