setData耗时长,怎么优化!
发布于 5 年前 作者 chao62 19016 次浏览 来自 问答

首页界面!数据渲染同时请求5个请求。请求都很快。

但是setData很慢,数据量也不大每一个setData都需要耗时3-5秒。之前都基础库都很快,2.1.0之前都。现在新的基础库很慢。请问一下怎么优化?

5 回复

怎么就榜首了!已经找到问题了。又一个数据量大大set,简化了

测试下,并没复现你所说的很慢的问题,提供下你的代码片段测试下(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

想办法合并成一个setData,频繁调setData会有性能问题

给你讲一下奥。更新state的时候使用的是JSON传递数据的,也就是说,你拿到数据之后处理过的对象会被弄成一堆JSON字符串。这堆东西大啊。

参考文档

https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html

小程序的视图层目前使用 WebView 作为渲染载体,而逻辑层是由独立的 JavascriptCore 作为运行环境。在架构上,WebView 和 JavascriptCore 都是独立的模块,并不具备数据直接共享的通道。当前,视图层和逻辑层的数据传输,实际上通过两边提供的 evaluateJavascript 所实现。即用户传输的数据,需要将其转换为字符串形式传递,同时把转换后的数据内容拼接成一份 JS 脚本,再通过执行 JS 脚本的形式传递到两边独立环境。

而 evaluateJavascript 的执行会受很多方面的影响,数据到达视图层并不是实时的。


这就可能导致每次拿的网络数据少,更新的时候出问题,和平时WEB开发的时候更新state不太一样的地方。

回到顶部