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

深圳信科做网站做推送用什么网站

深圳信科做网站,做推送用什么网站,网络广告营销策划方案,炫酷的编程代码微信小程序长列表#xff0c;渲染的越多就会导致内存吃的越多。特别是长列表的图片组件和广告组件。 为了解决内存问题#xff0c;所以看了很多人的资料#xff0c;都不太符合通用的解决方式#xff0c;很多需要固定子组件高度#xff0c;但是瀑布流是无法固定的#xf…微信小程序长列表渲染的越多就会导致内存吃的越多。特别是长列表的图片组件和广告组件。 为了解决内存问题所以看了很多人的资料都不太符合通用的解决方式很多需要固定子组件高度但是瀑布流是无法固定的所以需要找更好的方式。好在有一篇可以借鉴的文章在其基础上做了修改解决了内存问题 借鉴了以下文章的解决方式由于借鉴章依旧存在内存泄漏问题所以本文章改进后不再内存泄漏 借鉴文链接解决小程序渲染复杂长列表内存不足问题 - 掘金 (juejin.cn) 进入下面小程序可以体验效果 代码效果图 老规矩直接上代码各位直接引用 一、定义骨架组件 WXML view classlist-item idlist-item-{{skeletonId}} stylemin-height: {{height}}px;block wx:if{{showSlot}}view styleheight: 1px; z-index: 1;{{parentIndex}},{{index}}/viewimage stylewidth: 100%;height: 100%; modeaspectFill srchttps://img-blog.csdnimg.cn/direct/25e4d10c5187409d9190a2f47297503e.jpeg/image/block /view !-- 广告,不用可以直接去掉 -- block wx:if{{(index1)%120}}view classadbk stylemin-height: {{(shkeylist||shkeytx)?330px:315px}};{{showSlot?background:#ffff:}}block wx:if{{showSlot}}ad-custom classgirdAd unit-idadunit-xxxxx/ad-custom/block/view /blockJS:  // components/skeleton.js let app getApp() Component({lifetimes:{created(){//设置一个走setData的数据池this.extData {listItemContainer: null,}},attached(){},detached() {try {this.extData.listItemContainer.disconnect()} catch (error) {}this.extData null},ready() {this.setData({skeletonId: this.randomString(8), //设置唯一标识color:this.randomColor()})wx.nextTick(() {// 修改了监听是否显示内容的方法改为前后showNum屏高度渲染// 监听进入屏幕的范围relativeToViewport({top: xxx, bottom: xxx})let { windowHeight 667 } wx.getSystemInfoSync() //请自行优化这个取值let showNum 2 //超过屏幕的数量目前这个设置是上下2屏try {this.extData.listItemContainer this.createIntersectionObserver()this.extData.listItemContainer.relativeToViewport({ top: showNum * windowHeight, bottom: showNum * windowHeight }).observe(#list-item-${this.data.skeletonId}, (res) {let { intersectionRatio } resif (intersectionRatio 0) {// console.log(【卸载】, this.data.skeletonId, 超过预定范围从页面卸载)this.setData({showSlot: false})} else {// console.log(【进入】, this.data.skeletonId, 达到预定范围渲染进页面)this.setData({showSlot: true,height: res.boundingClientRect.height})}})} catch (error) {console.log(error)}})}},/*** 组件的属性列表*/properties: {parentIndex:{type:Number,value:0},index:{type:Number,value:0}},/*** 组件的初始数据*/data: {height: 0, //卡片高度用来做外部懒加载的占位showSlot: true, //控制是否显示当前的slot内容skeletonId: ,color:#7179b1,colorList:[#7179b1,#d66f33,#33d665,#cc33d6,#7233d6,#338bd6,#b5d2ea,#6f0c0c,#d43f8b,#00ccec,#2e666f,#ffcd18]},/*** 组件的方法列表*/methods: {/*** 生成随机的字符串*/randomString(len) {len len || 32;var $chars abcdefhijkmnprstwxyz2345678; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/var maxPos $chars.length;var pwd ;for (var i 0; i len; i) {pwd $chars.charAt(Math.floor(Math.random() * maxPos));}return pwd;},randomColor(){let num Math.ceil(Math.random()*10);return this.data.colorList[num];}} })WXSS: .girdAd{border-radius: 10px;z-index: 11; } .adbk{background: #636363;border: 1px solid #f3f3f3;border-radius: 10px;margin-top: 10px; }.adloading{line-height: 300px;color: rgb(255, 255, 255);text-align: center;position: absolute;right: 23%; } 二、业务代码使用骨架组件 业务代码中就是数组的数据需要频繁的使用setData这个接口所以需要避免频繁操作。 将list 数据改成二位数组。 json需要引入    skeleton:/components/skeleton/skeleton WXML: scroll-view styleheight: 100vh;typecustomscroll-y{{true}} lower-threshold{{100}}scroll-top0scroll-with-animation{{true}} bindscrolltolowerloadmoregrid-view typemasonry cross-axis-count{{2}} cross-axis-gap{{10}} main-axis-gap{{10}} padding{{[5,5,0,5]}}block wx:for-itemparentItem wx:for-indexparentIndex wx:for{{list}} wx:key{{parentIndex}}!-- 这个view仅作为间隔区分展示用并不是必须的 --block wx:if{{parentIndex!0}}wx:for{{parentItem}} wx:key{{index}} !-- 使用 --skeleton parentIndex{{parentIndex}} index{{index}}/skeleton/block/block/grid-view /scroll-view JS: Component({lifetimes:{created(){this.loadmore()}},data: {list: [[{}]]},methods: {loadmore: function() {//过长的list需要做二维数组因为setData一次只能设置1024kb的数据量如果过大的时候就会报错//二维数组每次只设置其中一维所以没有这个问题let nowList list[${this.data.list.length}]let demoList this.getList(100)this.setData({[nowList]: demoList})},/*** 每次吸入num条数据*/getList(num) {let list []for (let i 0; i num; i) {list.push({height: this.getRadomHeight()})}return list },/*** 生成随机(100, 400)高度*/getRadomHeight() {return parseInt(Math.random()*100 300)}}, })
http://www.dnsts.com.cn/news/271202.html

相关文章:

  • 网站开发文档总结wordpress粘贴文章
  • 柳市网站优化汉寿网站建设
  • 湛江电子商务网站建设手机网站技术方案
  • 无锡网站制作排名上海网站建设seo公司哪家好
  • 网站只做优化wordpress广告设置
  • 西昌手机网站英文网站推广方法
  • 怎么做同城购物网站做企业网站的尺寸是多少钱
  • 网站开发托管协议西安百度推广多少钱
  • 做班级玩网站做哪些方面泰安肥城网站建设
  • 张掖市网站建设做pc端网站适配
  • 网站建设与管理专业学什么龙华建设网站公司
  • 网站建设 php jsp .net旅游网网站建设目的
  • 网站设计怎么做一点首页就跳转国通快速建站
  • 惠州城市建设建筑网站qq登录网页手机版
  • 广告网站做动图怎么做国外vps 加速免费
  • 做携程网站的技术搜索引擎网站推广怎么做
  • 万网网站建设的子分类能显示多少个融水县建设局网站
  • 家庭网站建设h5制作软件免费 fou
  • 新乡做网站的网站友情链接有什么用
  • flask做视频网站吉安市建设技术培训中心网站
  • php网站开发实用技术订单查询网站怎么做
  • 网站建设报价单模板推广企业网站最主要的方式
  • 柳州网站网站建设网站与系统开发
  • 网站案例模版蒙阴做网站
  • 电子商务网站开发需要注意问题网站建设 简易合同
  • 济源市网站建设东软实训网站开发
  • 龙岗高端网站建设qq空间同步到wordpress
  • 阿里云空间做网站南京移动网站设计
  • 建设部网站安全事故企业网站建设多长时间
  • 建设音乐主题网站代理记账公司哪家好