国产私密视频_精品无人区卡一卡二卡三_中文av字幕_99精品国产一区二区三区2021_日本无遮羞调教打屁股_伊人久久在线?看

18842388900

網(wǎng)站建設 APP開發(fā) 小程序

Article/文章

記錄成長點滴 分享您我感悟

您當前位置>首頁 > 知識 > 軟件開發(fā)

微信小程序中如何渲染html內(nèi)容(代碼示例)

發(fā)表時間:2019-05-20 08:50:33

文章來源:沈陽網(wǎng)站建設

標簽:css html5 html

分享:

瀏覽次數(shù):0

本篇文章給大家?guī)淼膬?nèi)容是關于微信小程序中如何渲染html內(nèi)容(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

大部分Web應用的富文本內(nèi)容都是以HTML字符串的形式存儲的,通過HTML文檔去展示HTML內(nèi)容自然沒有問題。但是,在微信小程序(下文簡稱為「小程序」)中,應當如何渲染這部分內(nèi)容呢?

解決方案wxParse

小程序剛上線那會兒,是無法直接渲染HTML內(nèi)容的,于是就誕生了一個叫做「 wxParse 」的庫。它的原理就是把HTML代碼解析成樹結構的數(shù)據(jù),再通過小程序的模板把該數(shù)據(jù)渲染出來。

rich-text

后來,小程序增加了「rich-text」組件用于展示富文本內(nèi)容。然而,這個組件存在一個極大的限制: 組件內(nèi)屏蔽了所有節(jié)點的事件 。也就是說,在該組件內(nèi),連「預覽圖片」這樣一個簡單的功能都無法實現(xiàn)。

web-view

再后來,小程序允許通過「web-view」組件嵌套網(wǎng)頁,通過網(wǎng)頁展示HTML內(nèi)容是兼容性最好的解決方案了。然而,因為要多加載一個頁面,性能是較差的。

當「WePY」遇上「wxParse」

基于用戶體驗和功能交互上的考慮,我們拋棄了「rich-text」和「web-view」這兩個原生組件,選擇了「wxParse」。然而,用著用著卻發(fā)現(xiàn),「wxParse」也不能很好地滿足需要:

    我們的小程序是基于「WePY」框架開發(fā)的,而「wxParse」是基于原生的小程序編寫的。要想讓兩者兼容,必須修改「wxParse」的源代碼。

    「wxParse」只是簡單地通過image組件對原img元素的圖片進行顯示和預覽。而在實際使用中,可能會用到云存儲的接口對圖片進行縮小,達到「 用小圖顯示,用原圖預覽 」的目的。

    「wxParse」直接使用小程序的video組件展示視頻,但是video組件的 層級問題 經(jīng)常導致UI異常(例如把某個固定定位的元素給擋了)。

    此外,圍觀一下「wxParse」的代碼倉庫可以發(fā)現(xiàn),它已經(jīng)兩年沒有迭代了。所以就萌生了基于「WePY」的組件模式重新寫一個富文本組件的想法,其成果就是「WePY HTML」項目。

    實現(xiàn)過程解析HTML

    首先仍然是要把HTML字符串解析為樹結構的數(shù)據(jù),我采用的是「特殊字符分隔法」。HTML中的特殊字符是「<」和「>」,前者為開始符,后者為結束符。

    ?如果待解析內(nèi)容以開始符開頭,則截取 開始符到結束符之間 的內(nèi)容作為節(jié)點進行解析。
    ?如果待解析內(nèi)容不以開始符開頭,則截取 開頭到開始符之前 (如果開始符不存在,則為末尾)的內(nèi)容作為純文本解析。
    ?剩余內(nèi)容進入下一輪解析,直到無剩余內(nèi)容為止。
    正如下圖所示:

    13133049-23db30359eab3e6e.png

    為了形成樹結構,解析過程中要維護一個上下文節(jié)點(默認為根節(jié)點):

    ?如果截取出來的內(nèi)容是開始標簽,則根據(jù)匹配出的標簽名和屬性,在當前上下文節(jié)點下創(chuàng)建一個子節(jié)點。如果該標簽不是自結束標簽(br、img等),就把上下文節(jié)點設為新節(jié)點。
    ?如果截取出來的內(nèi)容是結束標簽,則根據(jù)標簽名關閉當前上下文節(jié)點(把上下文節(jié)點設為其父節(jié)點)。
    ?如果是純文本,則在當前上下文節(jié)點下創(chuàng)建一個文本節(jié)點,上下文節(jié)點不變。
    過程正如下面的表格所示:

    13133049-4c044ef7a54fbf5f.png

    經(jīng)過上述流程,HTML字符串就被解析為節(jié)點樹了。

    對比
    把上述算法與其他類似的解析算法進行對比(性能以「解析10000長度的HTML代碼」進行測定):

    13133049-ccb215322353e4c0.png

    可見,在不考慮容錯性(產(chǎn)生錯誤的結果,而非拋出異常)的情況下,本組件的算法與其余兩者相比有壓倒性的優(yōu)勢,符合小程序「 小而快 」的需要。而一般情況下,富文本編輯器所生成的代碼也不會出現(xiàn)語法錯誤。因此,即使容錯性較差,問題也不大(但這是需要改進的)。

    模板渲染

    樹結構的渲染,必然會涉及到子節(jié)點的 遞歸 處理。然而,小程序的模板并不支持遞歸,這下仿佛掉入了一個大坑。

    css,html5,html

相關案例查看更多

主站蜘蛛池模板: 俄罗斯美女肛交内射WWWC〇M_国产成人亚洲综合网站_国产成人无码AV在线播放DVD_无码视频在线观看_天天操夜夜草_亚洲综合一区自偷自拍_国产在线观看成人_在线免费av网址 | 思思99re6国产在线播放_99国内揄拍高清国内精品对白_欧美福利网站_亚洲国产精品福利_欧美自拍嘿咻内射在线观看_人人爽人人爽av_色老久久精品偷偷鲁_久一免费视频 | 不卡一区二区在线观看_国产乱弄免费视频_日韩精品一区二区三区四_手机a级毛片免费观看_中文天堂在线最新版在线WWW_精品综合久久久久久888_日本免费播放一区二区三区_久久久久亚洲精品男人的天堂 | 女人爽到喷水的视频大全_亚洲视频一二三_亚州五月_免费大片av_国产精品无码一区二区三区观看_日韩高清在线观看不卡一区二区_片多多影视剧免费观看在线观看_91在线婚闹无删减 | 爱视频福利_深夜在线免费观看_国内精品久久久久久久影视蜜臀_91免费精品视频_欧美黄色一区二区三区_亚洲文字幕_在线观看美女av_国产黄在线 | 又爽又黄又无遮挡的视频_五月激情五月婷婷_伊人久久综合视频_99国产精品9_免费毛片在线_欧美黄色免费在线观看_成人α片免费视频在线观看_欧美日韩在线精品一区二区三区 | 国产区综合_精品一区二区免费视频视频_国产精品乱子乱XXXX_久久综合性_亲含舔丰满湿插_国产高清乱码又大又圆_久久免费看少妇高潮a片特黄网站_亚洲综合久 | 亚洲视频欧美视频_欧美性欧美巨大黑白大战_国产伦子系列沙发午睡_日本xxxx在线观看_女同一区二区_国产黄色激情视频_国产精品午夜爆乳美女视频_国产麻传媒精品国产AV | 亚洲AV午夜福利精品一区二区_亚洲精品一区二区国产精华液_国产91在_亚洲精品在线观看一区二区_99久久99热这里只有精品_91久久久久久久久久久久久_哪里可以看免费的av_日韩有码第一页 | 在线高清无码A._国产白丝喷水视频在线观看_成人一二三区视频_婷婷丁香五月亚洲中文字幕_亚洲成色最大综合在线_亚洲天堂欧美在线_黄色片下_粗大的内捧猛烈进出少妇 | 另类激情五月_中文天堂在线观看视频_视频一区二区免费_久久久久蜜桃精品成人片公司_精品成人无码A片观看香草视频_亚洲3atv精品一区二区三区_午夜男人网站_国产精品浓毛一区二区三区 | 无码国产精成人午夜视频不卡_久久成人午夜视频_国产超碰人人爽人人做人人爱_成人av福利_高清久久久久久_亚洲成AV人在线观看天堂无码_久久先锋男人AV资源网站_91在线中文 | 亚洲天堂一区在线_国产精品亚洲精品久久挡不住_日本成本人片免费高清在线观看_免费看α片_国产AV丝袜美腿丝袜_激情视频久久_国产视频日韩_日本九九视频 | 精品国产一区二区免费不卡_久久久久久久久久99_国产精品无码素人福利免费_国产三级生活片_国精一区二区_国产小福利_久久中文字幕无码专区_日韩精品国产精品 | 被按摩师玩弄到潮喷在线播放_免费AV无码不卡在线观看_呦一呦二在线精品视频_久色免费_久久女性裸体无遮挡啪啪_国产一级一区_黄色片一级免费_深夜艹逼逼 | 麻豆一二三专区入口_免费h网站在线观看的_国产成人亚洲精品青草_欧美顶级METART裸体全部_日韩在线观看网址_A级免费黄色视频_久久久免费看_国产真人无码作爱视频免费 | 亚洲色图在线播放_国产精品久久国产精品99gif_蜜桃久久久aaaa成人网一区_日本黄色高清视频网站_天天干天天澡_国产精品一区二区免费在线观看_九九有精品_国产高清不卡二三区 | 免费的麻豆视频_日韩欧美专区_国产午夜鲁丝无码拍拍_欧美一区二区三区激情在线视频_国产成人aa_九九九九九九九伊人_国语自产拍无码精品视频在线_蜜桃最新网站 | 日夜操天天干_久久精品99国产精品_国产一性一爱一乱一交_亚洲永久视频_精品久久久久久久无码人妻热_亚洲一级免费视频_m豆传媒在线链接观看_人人天天夜夜 | 亚洲精品国产精品国自产观看浪潮_成年人在线观看视频_欧美一级片毛片_国产又黄又猛又粗又爽的A片漫_日韩精品一区av_成人无码h真人在线网站_日本毛茸茸的丰满熟妇_国产精品黑丝 | 中文字幕无码网址_久久免费国产视频_波多野结衣在线播放一区_国产丰满麻豆videossexhd_成人午夜一区_老司机午夜福利视频免费播放_日本潮喷videos_欧美亚洲精品在线 | 国产9区_欧美性视频一区二区_亚洲a区在线观看_javlibrary贴吧_日本一二三区高清_永久免费视频国产_人人干影院_超碰三级 | 国产AV旡码专区亚洲AV_国产亚洲高清在线观看_日韩精品免费_成人乱码一区二区三区av_国产在线一区二区三区四区_偷拍自拍在线视频_不卡的一区_国内精品国语自产拍在线观看 | 91色中文_日韩中文一区_无码人妻久久一区二区三区免费_日本中文在线视频_av手机在线免费播放_欧美激情国产日韩精品一区18_亚洲一级特黄视频_free性欧美69巨大 | 亚洲国产一区在线_日韩久久久一区二区_99久久国产综合精品五月天_h视频在线观看网站_91精品啪在线观看国产日本_不卡无在线一区二区三区_亚洲色WWW永久网站_毛片在线看看 | 国产精品18久久久久久av小说_91高清一区_好男人资源在线www免费_久久久噜噜噜久久中文福利_日本中文字幕一级_99精品视频免费观看_免费看片源_亚洲精品国男人在线视频 | 免费www_他一边曰一边吃我奶小说免看_日产精品卡1卡2免费_国产精品呻吟久久av凹凸_免费网站在线观看黄色_亚洲欧美日韩在线一区二区_白袜奴gay网站_欧美黄网站在线观看 午夜精品中文字幕_贪婪欲望之岛在线播放_爱情岛亚洲AV永久入口首页_免费看黄视频在线_亚洲国产A∨无码中文777_中文字字幕码一二区_国产精品亚洲а∨天堂网_国产明星裸体无码XXXX视频 | 四虎黄色网_铠甲勇士第一部免费_亚洲色成人WWW永久在线观看_男女做爰猛烈吃奶啪啪喷水网站_久久精品午夜福利_91手机在线观看_成人日日夜夜_中国av在线播放 | 亚洲免费看看_91日韩精品久久久久身材苗条_999久久久精品_拔插拔插影院_日本免费新一区视频_国产一区二区三区四区三区_91精品久久久久久久浪潮_亚洲色大成网站WWW永久网 | 国产午夜精品一区二区三区软件_国产精品视频久久久久_精品国产区在线_亚洲精品成人av在线_一级免费黄色片_久久久不雅视频_日韩啪啪小视频_超碰人人舔 | 国产精品va无码免费_水野优香在线一区二区88_操你av_www久久久久_久草视频在线资源站_日本19禁啪啪无遮挡_18禁美女无遮挡裸身网站一区二区_成人a毛片 | 亚洲精品hd_亚洲天堂伊人网_免费观看一区二区三区毛片软件_成年人黄色片_中国特黄视频_五月久久久综合一区二区人妻_日韩综合_日本超碰在线观看 | 人间精品视频在线播放_av免费网站大全_国产精品久久久久久久久久久杏吧_男人和女人做爽爽视频_精品无人乱码一区二区三区_久久精品国产亚洲av香蕉_亚洲男人的天堂视频_国产欧美一区二区精品老汉影院 | 天天干视频网_国产精品久久久久免费a∨大胸_在线亚洲日本_成人αv_精品人妻AV一区二区三区_最新理论三级中文在线观看_久久久免费观看_最好看的中文2018 | 在线观看亚洲AV每日更新无码_亚洲成人黄色影院_一级片视频免费在线观看_鲁大师成人一区二区三区_天天久久综合_日日噜噜夜夜狠狠久久无码区_美女下部隐私(不遮挡)_精品国产SM捆绑最大网免费站 | 久久精品无码一区二区小草_国产精品一区二区三区在线观_色五月最新网址_h免费看_一a本v道久久_国产日日操_亚洲无线观看国产高清_日本三级黄色录像 | 94久久国产乱子伦精品免费_国精品产区WNW2544_午夜黄色av_久久精品视频在线播放_日韩视频一二三区_天天干干干_国产在线精品91国自产拍免费_国产三级啪啪 | 玖玖色在线观看_久久久国产精品黄毛片_日韩人妻无码潮喷中文视频_日本一区二区三区四区不卡视频_青青操国产_一级看片免费视频_夜夜激情网_凸凹隐藏撒尿xxxx偷拍 | 久久精品国语对话_亚洲天天摸日日摸天天欢_日韩AV无码一区二区三区不卡_日本污漫_日本在线理论片手机观看_久久精品国产免费_国产freesexvideos中国麻豆_亚洲欧洲精品无码av | 人间精品视频在线播放_av免费网站大全_国产精品久久久久久久久久久杏吧_男人和女人做爽爽视频_精品无人乱码一区二区三区_久久精品国产亚洲av香蕉_亚洲男人的天堂视频_国产欧美一区二区精品老汉影院 | www.com草逼_视频在线观看亚洲_麻豆传媒影院_久草这里只有精品_九九99靖品_亚洲1区1区3区4区产品乱码芒果_狠狠色狠狠色综合日日小蛇_亚洲欧美中文日韩在线v日本 |