- 当前 Bug 的表现(可附上截图)
原来小程序在iphone6和6s上会经常出现"小程序意外退出,请稍候重试"的提示. 发帖咨询后给的原因是6的ram只有1G, 手机性能不足导致的.
今天换到xs max上, 也是刷不了几屏就退出了. 按道理来说这部手机的性能应该足够了, 能否再帮忙定位一下故障原因.
出问题后我已经在微信的"设置->帮助与反馈->上传日志"中把日志上传了.
故障微信号:smcclient1
故障时间段:2019-07-01 15:00之后
ps: 此问题已经是ios的老问题了, 但是在手边另外一部华为p9手机上从来没出现过这个问题, 那台手机性能也不是很强, 所以仅仅是由于手机性能引起的?? 而且这个问题出现后没有任何可查询的日志来定位, 希望以后能有一些开发者能自主定位该问题的方法.
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
打开看了下,你这个实现很有问题,首屏图片都是swipper,且都在转菊花,不在可视区的也在转,这个没几个手机能扛得住,优化一下吧
还是有疑问.
能详细说明一下吗?你的意思是我页面中的swiper太多了?还是图片太多?还是其他的原因.
首屏目前的策略是每页加载5条,相当于是5个swiper, 每个swiper中设置了3个swiper-item, 但只显示1张图片. 相当于每页只显示5张图片. 下拉后通过wx.createIntersectionObserver()来保证页面中不显示区域的swiper都替换为空白占位, 这样最多一个页面中有10个swiper.
转菊花是绑定了图片的bindload事件, 在图片load完成前的一个交互.
当初刚开始做这个小程序时, 我没有做以上优化, 在iphone6手机上页面会很卡, 多翻几页拖动都成问题, 当时图片和swiper更多, 也没有出现过退出的情况.目前的问题并不是说页面中图片加载慢, 或者是swiper多导致页面拖动卡顿. 而是直接退出了.
如果说手机扛不住?那为什么几年前的安卓机器没出问题,而最新的iphonex 却出问题了呢?
应该是修复了.
之前官方回复的是手机内存耗尽, 但我前几天用iphone测试时, 发现某个页面只拉了一屏就意外退出, 但那个页面仅仅展示了一些小图片, 肯定不可能是内存耗尽导致的退出. 挨个标签查找, 发现是我写的一个组件中有一些根据业务先隐藏不显示的view(css实现的隐藏效果,设置的是margin-bottom: -1000rpx), 因为每个图片右下方都引用了这个组件, 加载两屏有30张图片, 就是这些隐藏的view引起了崩溃. (但为什么这些view会导致崩溃, 我没搞明白.怀疑是否是由于css都重叠在一起了导致的??).
之后我加了一些判断, 只在当前屏幕中的元素中才带上隐藏的这些view, 改完之后发现流畅的很, 之前我的iphone6最多加载3屏就意外退出, 现在滚动个30屏, 也很流畅, 再也没出现过崩溃的情况.
每个人的问题可能都不太一样, 我这个仅做参考. 并且绝大部分问题并不是官方的问题, 还是自己应用不当导致的. 我前几周重新梳理了一下之前的代码, 发现很多地方都可以改进, 前几天重新优化了一个版本后, 流畅多了.
其他的机型会吗?
手头上目前3台手机:iphone6, iphone6s和iphone xs max, 都会出现这个问题.
另外一台华为p9从来没出现过这个问题.
页面刷起来都很流畅, 没有出现过卡顿的情况, 就是刷着刷着就提示退出了.
具体的机型信息以及微信版本麻烦提供下
麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,时间点
先把微信版本升级看看,可能基础库问题
没有用, 刚更新到7.0.4, 基础库2.7.3后试了一下, 还是退出.