ForChange客服小弟
ForChange客服小弟
> 这个我们之前讨论过,不过因为 wxs 本身是一种比较独立的实现,当时没有比较好的方案,所以暂时搁置了。后续我们再调研一下,如何比较好的将其与 web 端开发糅合起来。 辛苦了,我现在要被运营干死了。我在搞一个图片编辑的,怎么优化,安卓都是卡出翔来。web版本就丝毫没问题。 有没有其他办法,真的太蛋疼了。
> 另外关于动画优化,还有个可能的因素是由于当前一个自定义组件最多可能负责10层dom节点渲染,频繁 diff 可能会比较慢。如果是这种情况,可以考虑将需要做动画那部分用 wx-view 包裹住。wx-view 会被独立渲染成一个自定义组件,相当于缩减了 diff 的量,也能带来一定程度的优化。 有看到,然后也加了,我的场景效果不太明显。因为页面结果页不多 
> 初始渲染的内容大概是多复杂的树? 试过一个空白模板也是有点慢。 ``` {{ title.name }} import { reactive, defineComponent } from 'vue'; export default defineComponent({ name: 'App', setup() { const title = reactive({ name: 'kgkh', }); return {...
> 如果你是按照我的 demo 来搭建配置的话,vue 的代码应该在 vendor 里,这里应该是只有业务代码的,这里面可能会存在什么耗时逻辑么? 我看错了,message的文件内容是 ``` module.exports = function(e, t) { e.HTMLElement, e.Element, e.Node, e.localStorage, e.sessionStorage, e.navigator, e.history, e.location, e.performance, e.Image, e.CustomEvent, e.Event, e.requestAnimationFrame, e.cancelAnimationFrame, e.getComputedStyle, e.XMLHttpRequest;...
总结当前情况就是 - 如果我大概延迟200ms及以上去require(''./../common/message.js'),那打开窗口的速度就是正常 - message页面仅仅是空白模板 - vue2 vue3都是差不多表现 - iOS不影响 - 安卓打开很明显的慢
> 安卓是什么机型呢?我看看能不能复现一下。 我们公司的安卓机都会有卡的现象 线上可以用qq搜索「匹配CP」,在消息或者我的页面里点击跳转到其他页面,就可以 然后我试了一下延迟base.js里init()的执行 ``` setTimeout(() => { setTimeout(() => { init(this.window, this.document); this.app = this.window.createApp(); this.window.$$trigger('load'); this.window.$$trigger('wxload', { event: query }); }, 0); }, 0); ``` 需要两次nextTick才可以保证不卡 然后init这个执行时间在正常iOS或者开发者工具下基本就是50ms(忽略不计)。在安卓上基本要200ms。...
> qq 里面也是么? > > 这个问题看来像是安卓卡帧了。安卓端本身确实可能存在这个问题,先前原生微信小程序上有过类似 case,在某些场景下会卡帧,这种的可能要待客户端那边解决才能从根源上来处理,我这边只能看看能否尽量改善这类 case 的体验了。 ok 辛苦了
那这个得找时间搞了
嗯,这个是在完整项目下会有这个情况。包含一些例如路由拦截器然后+接口请求+读取本地storage(安卓下操作localStorage都是随随便便100ms以上)。 不过这部分由于没有完全的进行测试,所以不知道影响打不打,因为即使我延迟创建app,也是同样结果。 所以看看大家有没有遇到,还有什么优化体验的方法 我现在是临时做法,将base.js里 this.init 放在 onReady执行,这个时间刚刚好大概就是两次nextTick。但是问题就变成,窗口进来了,但是页面要白将近400ms。 然后再打补丁,搞了个骨架屏的图片放在mp_dist/pages/页面.wxml里。 这样体验只好了一点点,可是很胶水
我的看法 确实对于大多数人来说,小程序对标的是Web的单页 市面上的框架也好,插件也好都是把改小程序改造的更像单页应用。这个是大家默认的方向和事情。 所以之前第一次用 kbone 的时候,是有点满头雾水的。因为我不知道如果把小程序做成多页的优势是什么? 是类似与一些其他同构方案,实现在原有框架中,嵌入一个别的框架写的页面? 变成多页的好处没有,倒是局限变得多了。这一点更难理解,明明大部分情况下使用单页就是为了优化多页的体验,现在又变回去了,只为了做到规范的「隔离」? 所以我也很矛盾,因为一方面如果只站在技术的角度,我觉得kbone 的做法合情合理,也本来就是这么做。 但是从使用上、目的上又希望把小程序做出单页,这样更贴近需求