- 复杂瀑布流长列表页踩坑记录,内存不足问题【1】
这篇文章主要是解决小程序无限滚动瀑布流页面引起的ios内存不足,自动退出问题 问题回顾:我们有一个列表展示页,是无限瀑布流式的,展示的元素我们封装成了单个组件,暂且叫它[代码]Item组件[代码]。这个瀑布流包含若干个Item组件,并且这个Item组件也比较复杂,包含各种展示样式(根据不同类型,大概有9种吧,反正渲染节点很多),在进行滑动的过程中,item大概加载30-40个以后,就会造成小程序内存不足而退出,蓝瘦香菇… 点击此处查看二期 解决思路: 将超出屏幕一定部分的列表内的组件进行不渲染的处理(也就是用wx:if卸载掉组件),当到达渲染临界点时再开始渲染;保证每次少量的数据展示。 我们的项目中是保持15条Item,我们是每次分页请求5条,按照前5条,中间5条和后5条来划分,如果不在这个范围,则用一个等高度的骨架代替,并且卸载这些组件 实现方式 使用曝光监听,当一个Item曝光时,记录Item高度,并放到数组里面,作为骨架的填充高度,如果已经记录了高度,则不再重复记录;曝光时向外传递一个当前渲染范围的中心值(比如当前Item所属页码,或者当前Item索引),以此进行处理; 这里有一点要注意,如果你的列表item组件比较复杂,需要在ready的时候将记录的高度设置为item最小高度,不然组件重新装载时会有一定的渲染时间,在临界点会造成跳屏【此处已经通过骨架组件解决,可以忽略,只是作为踩坑记录】 此时优化点 为避免频繁setData和渲染,做了防抖函数,时间是600ms 此时缺点 滑动特别快时,会出现白屏,是因为曝光监听是在组件里面,而超快速滚动时,组件没有装载进来,也无法进行曝光监听,所以无法触发,这里考虑用骨架组件进行二次监听曝光 优化迭代 将骨架组件作为外壳套在Item外面(用[代码]slot[代码]),并对骨架进行监听曝光,可以解决上面缺点 给骨架组件做一个常规骨架屏样式,而不是纯白色,看起来更优雅 最后,还是尽量减少节点数,优化代码
2019-12-05 - 在线答题小程序使用帮助文档
产品介绍 在线答题小程序是一款以小程序为载体,在微信内部完成刷题、模拟考试的产品, 专为各类学校和培训机构提供考试系统,包括自测练习、组织统一考试、开展知识竞赛、布置课外作业或假期作业、智能组卷、答卷评阅与成绩管理等众多功能;也可用于政府机构、企事业单位内部的入职考试、员工考核、内部培训考试等。 适用场景 1 ·企业招聘考试。候选人等候时面试可手机扫码参加笔试,系统实时生成结果,一个简单的考核就可让面试官提前了解候选人的能力情况。在大规模校园聘会上公布考试地址,考生现场完成考试,现场出分,主办方可快速筛选合格考生参加面试,大大缩短招聘周期和成本。 2 ·员工晋升考核。员工专业技能是否达标,员工素质测评,安排一场考试即可对员工是否晋升进行有理的判断。全面电子化式考试,可大大缩短员工考核周期与成本。 3 ·培训认证考试。培训机构结业认证考核,行业从业资格认证,能力认证考核等,题答答提供从考生报名到参加考试的全流程功能。无限制题库刷题,错题训练,随机题序,答案解析,错题本重练,让刷题不止追求量,也有质的保障,帮助考生更熟练地掌握知识点,提高考试通过率。 题库管理 题库可用来对题目进行归类管理,题库下可加入多个题目,打开题库可以查看此题库下的所有题目。例如题库可以设置为:微信期末考。 题目导入 上传前请先下载模板,按照模板要求新建文档,或者修改已有文档的格式。模板下载地址:Excel模板 。 在线考试 该模块可随机从题库抽取固定数量的题目进行考试,考试时间,考试数量,都可以通过后台完成设置 20200609 目前在线考试模块已支持记忆功能,比如某用户小肥羊在某次100个题目的考试过程中做到第十题,中途退出了,那么下次进来考试从第11题开始。 20200612 新增考试得分支持按照不同题型不同得分来计算,比如单选题1分,多选题2分,判断题1分 40道单选题 20道多选题 20道判断题 40×1+20×2+20×1 = 100分 模拟考试 模拟考试主要用于日常考试用,不限制考试次数,不限制考试时间 顺序练习 顺序练习每次会展示当前题库的所有题目,答题过程会有记录,如果中途退出,下次进来练习,会从上次退出答题的题目开始练习,也就是所谓的中途退出答题记忆功能 模拟练习 模拟练习每次随机从题库抽取10道题目,方便日常刷题用。因为每次随机抽题,所以该模块可以改名为每日一练或者每日练习 20200609 模拟练习新增答题卡设计,用户可以通过答题卡进入具体某天进行答题或者核对当前答题情况 我的成绩 该模块用于展示在线考试的答题记录情况,考试得分、考试用时等相关信息 错题管理 用于展示在线考试模块,答错的题目,注意:顺序练习、模拟练习这两个模块做错题,不记录在我的错题里面 收藏管理 用于展示顺序练习、模拟练习两个模块中收藏的题目信息,在线考试不提供收藏功能 成绩排名 该模块用于根据在线考试模块答题情况进行排名展示,目前最多只展示前20秒的考生记录 报表导出 在线考试模块的考试记录可以通过后台导出,导出文件为Excel,该文件具体可包含考生信息、分数、考试时间等,截图如下: [图片] 如果需要其他更多信息也可支持 扫码体验 1 1 [图片] 1 其他 未完待续
2021-01-06 - swiper 和 movable-view一起使用,缩放拖动图片,冲突,怎么解决?
双指缩放放大图片之后,拖动图片,swiper也生效,变成上一页下一页了 <swiper class="swiper" skip-hidden-item-layout current="{{current}}"> <block wx:for="{{groupList}}" wx:key="{{item.id}}"> <swiper-item> <movable-area class="swiper" scale-area> <movable-view class="swiper" direction="all" out-of-bounds scale scale-min="1" scale-max="4" scale-value="1" > <image lazy-load src="{{item.url}}" mode="aspectFit"></image> </movable-view> </movable-area> </swiper-item> </block> </swiper>
2019-10-10