a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 系統(tǒng) > Android > 正文

微信小程序在安卓的白屏問(wèn)題原因及改進(jìn)講解

2019-10-21 21:25:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在做小程序的時(shí)候,做到了一個(gè)限時(shí)商品售賣,用到了倒計(jì)時(shí),因?yàn)檫@個(gè)原因?qū)е铝税沧渴謾C(jī)上使用小程序時(shí),將小程序放入后臺(tái)運(yùn)行一段時(shí)間后,再次進(jìn)入小程序后出現(xiàn)了頁(yè)面白屏或者點(diǎn)擊事件失效的情況,這里記錄下

1.相關(guān)代碼文件

我這里是使用了自定義組件的形式來(lái)渲染的

  • 外部的引用的自定義組件的wxml文件
/* limitCommodity是一個(gè)數(shù)組,返回的是商品對(duì)象,包含商品價(jià)格、商品結(jié)束時(shí)間、商品圖片等 */<block wx:for="{{limitCommodity}}" wx:key="{{item.id}}">  <commodityItem class="specialContent" goods="{{item}}" /></block>
  • 自定義組件的js文件
Component({ properties: {  goods: Object }, data: { }, timer: null, /* 在組件實(shí)例進(jìn)入頁(yè)面節(jié)點(diǎn)樹(shù)時(shí)執(zhí)行,開(kāi)始定時(shí)器 */ attached: function() {  if(this.timer) {   clearInterval(this.timer);  }  this.filterTime();  let that = this;    this.timer = setInterval(function () {   that.filterTime();  }, 1000) }, /* 在組件實(shí)例被從頁(yè)面節(jié)點(diǎn)樹(shù)移除時(shí)執(zhí)行,將定時(shí)器清除 */ detached: function() {  clearInterval(this.timer);  this.timer = null; }, methods: {  /* 用于將時(shí)間戳轉(zhuǎn)換成自定義的時(shí)間格式 */  filterTime() {   let totalTime = new Date(parseInt(this.data.goods.endtime) * 1000) - new Date();   let days = parseInt(totalTime / 1000 / 60 / 60 / 24, 10);   let hours = parseInt(totalTime / 1000 / 60 / 60 % 24, 10);   let minutes = parseInt(totalTime / 1000 / 60 % 60, 10);   let seconds = parseInt(totalTime / 1000 % 60, 10);   let day = days >= 10 ? days : '0' + days;   day = day == 0 ? '' : day + '天';   let hour = hours >= 10 ? hours : '0' + hours;   let minute = minutes >= 10 ? minutes : '0' + minutes;   let second = seconds >= 10 ? seconds : '0' + seconds;   this.setData({    limitTime: day + hour + ":" + minute + ":" + second   })  }, }})

2.引起的原因

  • 因?yàn)樵谕獠恳胱远x的組件時(shí),直接就是調(diào)用了定時(shí)器并且進(jìn)行了setData操作,這就導(dǎo)致了當(dāng)在外部引用這個(gè)組件時(shí),如果傳入的商品數(shù)組長(zhǎng)度較大時(shí),定時(shí)器增多的同時(shí),setData操作也不斷的增多
  • setData多了就會(huì)導(dǎo)致內(nèi)存占用多

3.改進(jìn)方法

改進(jìn)方法就是減少setData操作

  • 可以再自定義一個(gè)組件,用于將整個(gè)數(shù)組傳入
  • 然后對(duì)商品數(shù)組里的時(shí)間先進(jìn)行計(jì)算
  • 改進(jìn)后的js文件
Component({ properties: {  limitCommodity:Array }, data: { }, timeOut:null, /* 在組件實(shí)例進(jìn)入頁(yè)面節(jié)點(diǎn)樹(shù)時(shí)執(zhí)行 */ attached(){  this.calculate(); }, /* 在組件實(shí)例被從頁(yè)面節(jié)點(diǎn)樹(shù)移除時(shí)執(zhí)行,將定時(shí)器清除 */ detached(){  clearTimeout(this.timeOut);  this.timeOut = null; }, methods: {  filterTime(endtime) {   let totalTime = new Date(parseInt(endtime) * 1000) - new Date();   let days = parseInt(totalTime / 1000 / 60 / 60 / 24, 10);   let hours = parseInt(totalTime / 1000 / 60 / 60 % 24, 10);   let minutes = parseInt(totalTime / 1000 / 60 % 60, 10);   let seconds = parseInt(totalTime / 1000 % 60, 10);   let day = days >= 10 ? days : '0' + days;   day = day == 0 ? '' : day + '天';   let hour = hours >= 10 ? hours : '0' + hours;   let minute = minutes >= 10 ? minutes : '0' + minutes;   let second = seconds >= 10 ? seconds : '0' + seconds;   return day + hour + ":" + minute + ":" + second  },  calculate(){   let limitCommodity = this.data.limitCommodity;   for (let i = 0; i < limitCommodity.length;i++){    limitCommodity[i]['endtime_date'] = this.filterTime(limitCommodity[i]['endtime'])   }   this.setData({    limitCommodity   })   this.timeOut = setTimeout(()=>{    this.calculate();   },1000);  } }})

改進(jìn)就是計(jì)算時(shí)間后再返回時(shí)間,而setData的是整個(gè)商品列表數(shù)組,這樣就減少了setData次數(shù)

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 三级视频网站 | 精品一区二区在线播放 | 2018狠狠干| 亚洲成人黄色网 | 色屁屁草草影院ccyycom | 国产精品久久久久久亚洲调教 | 涩涩导航| 一级视频黄色 | 久久这 | 影音先锋在线看片资源 | 天天看天天操 | 国产精品一区二区在线观看 | 亚洲日韩欧美一区二区在线 | 色婷婷久久 | 国产欧美精品一区二区色综合 | 狠狠色香婷婷久久亚洲精品 | 色婷婷中文 | 五月婷婷av | jlzzjlzz亚洲日本少妇 | 中文字幕7777 | 特级丰满少妇一级aaaa爱毛片 | 日韩中文一区二区三区 | 国产无毛| 亚洲天天 | 欧美日韩在线免费 | 免费看特级毛片 | 久久久网站 | 成人精品高清 | 国产精品久久久久久久久久久免费看 | 国产一区二区三区免费观看 | 国产成人综合av | 亚洲国产日韩a在线播放性色 | 久久叉| 日本国产精品视频 | 日韩精品电影在线观看 | 国产精品久久久久久吹潮 | 国产一区二区 | 日韩手机在线视频 | 视频精品一区二区三区 | 欧美国产三级 | 91精品麻豆 |