富文本解析 wxParse 解析数据造成页面假死

问题描述

小程序中总有富文本解析的场景,比如:头条的终端页。我们的终端页使用了 wxParse, 但是由于 wxParse有些小问题,并且项目使用 mpvue,所以把
wxParse 拉到本地做了一些魔改,但是依然遇到性能瓶颈,数据过多造成页面假死,相对于小程序原生的 rich-text 富文本解析组件;wxparse 的功能性更丰富,支持 video;

解决方案

由于数据过多而造成页面假死,那就从数据层的角度考虑,把数据分段加载,关键部分代码如下:

<template><!--基础元素--><div class="wxParse" :class="className" v-if="!loading"><block v-for="(node,index) of nodes" :key="index"><wxParseTemplate :node="node"/></block></div>
</template><script>
let query = null;
let scrollTime = null;
let nodesData = [];
export default {data() {return {nodes:[], // 计算属性中的 nodes 放到 data 里};},onPageScroll(e){if (!nodesData.length) return;if (scrollTime) clearTimeout(scrollTime);scrollTime = setTimeout( ()=> {query.exec((res) => {clearTimeout(scrollTime);console.log('res');console.log(res);console.log(e);if (e.scrollTop > (res[0].height/2)) {console.log('我要加载');this.nodes.push(...nodesData.splice(0,15));}})},100);},onLoad() {nodesData = [];console.log('wxParse start');query = wx.createSelectorQuery();query.select('.wxParse').boundingClientRect();nodesData = this.getNodes();this.nodes.push(...nodesData.splice(0,25));},onUnload () {nodesData = [];if (scrollTime) clearTimeout(scrollTime);},methods: {getNodes () {const {content,noData,imageProp,startHandler,endHandler,charsHandler,} = this;const parseData = content || noData;const customHandler = {start: startHandler,end: endHandler,chars: charsHandler,};const results = HtmlToJson(parseData, customHandler, imageProp, this);this.imageUrls = results.imageUrls;return results.nodes;},},
}
</script>

上面方法的思路是在页面滑动的时候对数据进行分段加载,但是通过实践,发现如果终端页要跳转其他页面,返回之后还是会把剩余数据加载完,依旧造成页面卡死,还有问题就是刚进入页面解析数据,比如有贴底按钮无法点击(此时在解析数据)。最终还是重新自写了个 parse,如果对于需求比较简单的,推荐小程序原生的
rich-text,如果数据较少, wxParse 还行,如果数据量过大,慎用!!!

富文本解析 wxParse 解析数据造成页面假死相关推荐

  1. 微信小程序开发(十三)富文本插件wxParse的wxParseImgTap的bug修复

    在上一篇微信小程序开发(十二)富文本插件wxParse的使用中,我已经使用了wxParse插件.下午有时间就仔细的把玩了一下,发现了一个bug. 问题描述 仔细看报错,我们会发现是wxParse.js ...

  2. 分批次插入mysql:一次性插入mysql两万以上数据造成数据库假死

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 项目距离上线的日期越来越近了,需要规范一下数据库中的数据,就需要从前端页面上导入系统数据到mys ...

  3. 关于微信小程序富文本编辑器回显数据初始化editor的时候,页面滑动到最底部了

    ** 一个页面高度超出一屏时,底部使用了富文本编辑器组件editor之后,如果在进入页面时对editor进行了赋值,页面会滚动到底部 控制页面不滚动到底部?** 这个问题的关键是进入页面给富文本赋值造 ...

  4. 微信小程序开发(十二)富文本插件wxParse的使用

    昨天一位网友问我小程序怎么解析富文本.他尝试过把html转出小程序的组件,但是还是不成功,我说可以把内容剥离出来.但是这两种方法都是不行了.后来找到了wxParse-微信小程序富文本解析组件. 特性 ...

  5. 解决百度富文本框中添加的表格页面获取后不显示表格边框的问题

    在百度富文本框添加表格后可以右击设置表格边框是否可见,设为可见就可以显示了 转载于:https://www.cnblogs.com/missguolf/p/9076535.html

  6. 微信小程序解析html富文本插件wxparse的使用

    第一步:下载把wxparse文件放到根目录下 第二步:引入<import src="../../wxParse/wxParse.wxml"/>  在xx.wxml页面 ...

  7. 微信小程序-后台使用富文本编辑器返回数据,小程序编译富文本编辑器返回的数据

    最近遇到一个功能,后台管理系统添加商品的时候,商品详情是使用富文本编辑器添加的.小程序获取的商品详情数据是含有<p>标签的. 后台管理系统 百度了多种方法,也试用了很多方法,最终觉得wxP ...

  8. 微信小程序富文本组件wxParse

    项目地址:https://github.com/icindy/wxParse 1 打开项目地址,下载项目文件 2 将wxParse文件夹粘贴到项目 3 新建页面 "pages/home/ri ...

  9. 微信小程序-富文本插件wxParse

    一.准备工作 github下载waParse插件,地址:https://github.com/icindy/wxParse 放到小程序目录下:和utils平级 二.使用 //WXML页面 <im ...

最新文章

  1. Scratch等级考试(一级)模拟题
  2. SpringCloud微服务云架构构建B2B2C电子商务平台简介
  3. C语言实验——保留整数_JAVA
  4. [云炬创业基础笔记]第六章商业模式测试8
  5. C#的特性Attribute
  6. cef如何隐藏html,CefSharp访问加密的HTML/JS/CSS文件
  7. 270 扩展固态硬盘_新款macbook扩展坞,内置固态硬盘盒,支持NVME M2协议,一秒传输1GB...
  8. 一文搞定基因型数据清洗
  9. 机器学习基石(林軒田)笔记之十三
  10. 微信小程序激活账号时,提示“此帐号已激活,请使用帐号密码直接登录”
  11. 微信小程序如何刷浏览量和访问量?
  12. mysql关键字释义_数据库连接字符串ConnectionString 中的关键字值释义
  13. Axure动态面板使用,简单的交互
  14. 笔记本计算机名称PC2019,2019值得推荐的13寸笔记本电脑汇总
  15. 表示条件:10 x 100或x 0的c语言表达式是,西安培华学院c语言期未考试A.doc
  16. 最新分布式训练深度学习框架
  17. 学会python语法后的第一个爬虫
  18. 新概念2 课文和单词(1)
  19. 动态路由协议-OSPF原理与推举实验
  20. moon-util工具

热门文章

  1. dell服务器uefi启动不了系统安装系统安装,戴尔做uefi系统-uefi启动进不去系统怎么办呀...
  2. npm命令行强制删除node_modules
  3. 虚拟运营商新玩法:可随时根据需求更换套餐
  4. 天将降大任于斯人,必先灭其QQ……后必过CPA也!
  5. 一、无我相,无人相,无众生相,无寿者相
  6. Mac下 常用程序 无限试用方法
  7. 基于温湿度雨量水质监测的 智能水利视频监测调度系统
  8. 日期数据数组按实际周和实际月进行分组
  9. 年初离职季离职理由大图鉴!
  10. 教你用二手GEN8空箱子组建黑群晖