一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

商城系統(tǒng) 注冊

微信小程序調(diào)起鍵盤性能優(yōu)化

2018-07-25|HiShop
導(dǎo)讀:在 小程序 中,我們經(jīng)常有調(diào)起鍵盤的操作場景,但是在不同的場景下解決方案不盡相同,還是需要具體問題具體分析。 需求分析 最近在項目中有一個需求,是從列表頁點擊評論按鈕進...

在小程序中,我們經(jīng)常有調(diào)起鍵盤的操作場景,但是在不同的場景下解決方案不盡相同,還是需要具體問題具體分析。

微信小程序調(diào)起鍵盤性能優(yōu)化

需求分析

最近在項目中有一個需求,是從列表頁點擊評論按鈕進入詳情頁時,在加載完頁面后自動調(diào)起鍵盤進入評論狀態(tài)。從需求來看,我們應(yīng)該在onReady函數(shù)中調(diào)起鍵盤,因為onReady函數(shù)是在頁面初次渲染完成時被調(diào)用。但是在實踐中我們發(fā)現(xiàn),對于一些配置不好的手機,其加載頁面速度較慢,在onReady函數(shù)調(diào)用時頁面并沒有渲染完畢,就會導(dǎo)致placeholder和input組件位置錯亂的現(xiàn)象。其本質(zhì)原因是,onReady生命周期函數(shù)并不能在調(diào)用時承若已經(jīng)將頁面渲染完成了。(盡管文檔中描述是已經(jīng)完成了。)

之前的操作是在onReady生命周期函數(shù)中調(diào)起鍵盤。

this.setData({ focus: true })
復(fù)制代碼

發(fā)現(xiàn)這個問題后做了相應(yīng)的延遲處理

setTimeout(() => {
  this.setData({ focus: true })
}, 300)
復(fù)制代碼

但這是治標不治本的方法,手機性能好的用戶會無謂的等待300毫秒,而手機性能很差的用戶等待300毫秒也不一定就能解決這個問題。

解決思路

那么既然小程序并沒有提供給我們一個理想的渲染結(jié)束后的回調(diào)函數(shù),那么我們就換個思路: 使用短輪詢來處理,當(dāng)頁面渲染完成后才調(diào)起鍵盤的操作。

既然要使用短輪詢,那么我們?nèi)ポ喸兪裁茨兀渴裁礃酥敬碇撁驿秩就瓿闪四兀吭谶@里,我是使用 wx.createSelectorQuery() 方法,它會返回一個SelectorQuery對象實例,在這個實例上調(diào)用select方法選擇我想要去輪詢的節(jié)點,在回調(diào)函數(shù)中判斷參數(shù)是否為 null 。如果返回了監(jiān)控的節(jié)點信息,那么說明已經(jīng)渲染完成。這時就可以進行鍵盤調(diào)起操作了。

let timer = setInterval(() => {
  wx.createSelectorQuery().select('#comment-section').boundingClientRect(rect => {
    if (rect !== null && timer !== null) {
      clearInterval(timer)
      timer = null
      this.setData({ focus: true })
    }
  }).exec()
}, 50)
復(fù)制代碼

在此之上,如果我們只粗暴的讓 focus 為 true 并不是個明智的做法。

在調(diào)起鍵盤時默認頁面會上推,如果在評論很少的情況下這樣的體驗并不好。所以需要判斷一個高度,超過這個值就上推,沒超過就不上推。這個值視實際情況而定。 上推的操作是由input組件的 adjust-position 屬性決定,為true則上推,否則則不上推。這時回調(diào)返回的參數(shù)中的節(jié)點信息就可以派上用場了。

// 在this.setData({ focus: true })前對節(jié)點高度進行判斷
if (rect.height < 500) this.setData({ push: false })
else this.setData({ push: true })
復(fù)制代碼

onBlur函數(shù)問題

在實際的操作中,我們發(fā)現(xiàn)在鍵盤被調(diào)起后會有概又自動收回。經(jīng)過排查發(fā)現(xiàn)時onBlur函數(shù)的問題,在onBlur函數(shù)中,我們手動的設(shè)置 focus 為 false ,但其實并不需要這一步操作,反而帶來了副作用。在我們?nèi)コ诉@部分代碼后,鍵盤自動收起的問題得到了解決。

封裝起來

雖然我們完成了這次任務(wù)的需求,但是顯而易見的,這樣的任務(wù)在未來肯定還會再次出現(xiàn)。所以機智的我們應(yīng)該趕快把整套流程封裝起來,以便下次直接調(diào)用。

 

那么這時我們使用的方式就是這樣的:

const Util = require("xxx") // 引入封裝的庫

/**
 * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
 */
onReady: function () {
  Util.onTotalReady('#comment-section', 50, rect => {
    if (rect.bottom < 500) this.setData({ push: false })
    else this.setData({ push: true }}
    this.setData({ focus: true })
  })
}
復(fù)制代碼

在解決鍵盤調(diào)起的這個過程中我們可以看出微信小程序開發(fā)流程的簡陋,這個問題的出現(xiàn)本質(zhì)上是小程序提供給我們的生命周期函數(shù)的不夠準確。否則在頁面渲染完成的情況下我怎么會拿不到節(jié)點信息呢?像react中的componentWillMount生命周期函數(shù)中就不會出現(xiàn)這樣的問題,所以希望小程序能再變強大一些,也讓我們少寫一點這種hack代碼。

HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。更多小程序商店請查看:小程序商店

電話咨詢 預(yù)約演示 0元開店
主站蜘蛛池模板: 亚洲国产精品无码第一区二区三区|十大免费最污的软件|玖玖99视频|激情动漫在线观看|#NAME?|蝌蚪视频窝在线播放 | 欧美在线中文字幕|亚洲天堂成人|国产一区二区精品久久91|精品人妻无码一区二区三区GIF|久久亚洲精品情侣|国产成人在线影院 | 台湾成人=av|91porny九色打屁股|日本少妇内射视频播放舔|日本一区二区在线免费观看|日韩一区精品视频一区二区|亚洲一区自拍高清亚洲精品 | 中国=av在线免费观看|麻豆色播|一级毛片视频在线|一级免费片|毛片在线免费视频|中国一级女人毛片 | 97超碰成人在线|欧美精品一区二区久久婷婷|在线观看免费人成视频播放|久久福利=av|精品一区不卡|久久水蜜桃视频 | 久久人人精品|亚洲综合欧美在线一区在线播放|高清欧美性猛交XXXX黑人猛交|国产欧美一区二区三区久久|黄色毛片=a|欧洲内射XXX高清 | 中国一级毛片在线视频|99在线观看免费视频|亚洲九九热|www.精品国产|亚洲www久久久|欧美白浆视频 | 日韩=av在线中文|三年片在线观看大全中国|日韩视频在线观看中文字幕|91在线看免费|免费人成在线观看视频无码|一个人看的视频www在线观看 | 一级女毛片|日本美女bb视频|尹人成人|亚洲成人=av观看|亚洲精品中文字幕制|91人成亚洲高清在线观看 | 日韩=av在线中文|三年片在线观看大全中国|日韩视频在线观看中文字幕|91在线看免费|免费人成在线观看视频无码|一个人看的视频www在线观看 | 亚洲乱小说|未满十八18禁止免费无码网站|日韩=av免费网址|在线国v免费看|人成午夜大片免费视频77777|亚洲激情影院 | 国产欧美日本=aⅤ精品|婷婷久久=av|免费观看的=av|国产精品一区二区x88=av|日本视频www|99热黄 | 精品日本一区二区三区在线观看|日日操夜夜摸|国产成人无码网站m3u8|欧美性猛交xx|亚洲自拍偷拍一区二区|国产免费无码成人=a片在线观看 | 中文字幕人妻高清乱码|久久久无码人妻精品一区|国产精品第八页|国产美女被遭强高潮网站不再|石原莉奈无删减在线观看|欧美成年网站 | 爱福利视频导航|一级=a=a=a级毛片午夜在线播放|国产真实情侣MV|欧美三级视频在线观看|午夜人成免费视频|www.99爱 | 国产精品久久久久久久小唯西川|日韩免费高清视频|亚洲另类自拍|黑森林精品=aV导航|日韩精品专区=av无码|高清精品久久 | 精品成人免费一区二区三区|亚洲专区在线|欧美裸体xxxx极品少妇软件|欧洲vi一区二区三区|免费激情网站|久久久青 | 亚洲第一视频专区|亚洲一区二区三区高清不卡|亚洲а∨天堂久久精品|亚洲一区二区三区麻豆|无码福利写真片视频在线播放|久久久人人人 | 亚洲免费永久|91看片网址|亚洲=aV片毛片成人观看|国产精品视频内|在线=a=a=a|国产美女主播一级成人毛片 | 国产人无码=a在线西瓜|午夜=a成v人精品|日本一区二区三区不卡免费|午夜裸体一级视频|穿书自救指南在线观看|欧美精品六区 | 国产伦精品一区二区三区免费|天天躁日日躁狼狼超碰97|综合亚洲视频|欧美性生交XXXXX无码小说|成年人免费网站在线观看|96国产精品 | 国产精品卡1卡2卡3|色八网站首页|潜行者40集免费观看视频|国产精品国产三级国产传播|小嫩妇下面好紧好爽视频|亚洲综合精品伊人久久 | 91污视频软件|国产=av无码专区亚洲=av果冻传媒|免费又色又爽又黄的视频入口|亚洲精品乱码久久久久久蜜桃不卡|yes123夜色资源站最新地址|福利免费在线网站 | 中文字幕高清在线观看|中文字幕一区二区三区门四区五区|中文字幕久久999及|国产亚洲日韩=aV在线播放不卡|精品国产免费看|亚洲tv在线 | 亚洲精品视频网址|新91网|国产乱人伦偷精品视频色欲|猫咪=av官网|可以免费看的毛片|91国产视频在线 | 国产香蕉在线观看|亚洲=aV无码乱码国产精品久久|最新中文字幕=av无码专区不卡|日韩午夜大片|精品视频久久久久久|性少妇MDMS丰满HDFILM | 碰碰精品|日本少妇被黑人XXXXX|大黑人交xxxx|色狠狠一区|97精品97|欧美牲交=a欧美牲交=aⅴ免费真 | 麻豆精品一区二区三区视频|99精美视频|久久精品久久精品中文字幕|BGMBGMBGM欧美老妇|插插久久|男女XX00上下抽搐动态图 | 99视频一区|久久久国产精品入口麻豆|中文字幕免费在线播放|少妇又紧又粗又爽的视频|日韩精品在线免费观看|欧美一性一交一乱 | 久久污视频|无码人妻精品中文字幕免费时间|日产无码精品一区二区三区|四虎最新免费网站|亚洲大尺度吃奶做爰|chinese叫床videos | 一区二区三区日韩视频在线观看|日韩欧美在线观看一区|91精品一区二区三区久久|FREEZEFR=aME丰满人妻|亚洲=aV无码一区二区二三区|欧美综合区自拍亚洲综合绿色 | 苏畅在麻花传媒的代表作品|亚洲第一久久久|九色91福利|欧美一级网址|456欧美成人免费视频|亚洲狠狠干 | 大地在线视频免费观看高清视频大全|蜜桃色=av|大陆毛片|青青久操视频|国产精品伊人久久|久久国产综合 | 国产成人18黄网站免费观看|日韩国产一区二|亚洲天堂自拍偷拍|性做爰片免费视频毛片中文|天天精品视频免费|黄色毛片免费 | 国产成人精品视频一区二区不卡|欧美日韩色另类综合|中文字幕在线欧美|免费视频日韩|国产精品第七十二页|天天草狠狠干 | 91精品一区二区三区在线|情侣偷拍在线一区|天堂网在线.www天堂|成人=a毛片免费全部播放|日本国产一区二区|美女被日在线观看 | 亚洲人成网站在线播放小说|亚洲国产精品尤物yw在线观看|韩国一级影院|天天综合操|亚洲欧洲精品一区|#NAME? | 久草在线|粉嫩=av一区二区在线播放免费|丁香五月天综合缴情网|激情五月俺也去狠狠爱|天天做夜夜爱|欧美专区亚洲 | 午夜无码伦费影视在线观看|在线看成人片|免费在线观看黄色=av|#NAME?|日韩=a∨精品日韩在线观看|精品人妻无码一区二区色欲产成人 | 91在线官网|亚洲日韩乱码中文无码蜜桃|仙武帝尊700集在线观看|99热精品首页|99九九精品视频|日韩超碰 | 婷婷五月综合国产激情|亚洲自拍一区在线观看|日本做暖暖视频高清观看|国产高清一区二区三区综合四季|蜜桃=av影院|天美传媒一区二区 |