收藏
回答

setData耗时长,怎么优化!

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug setData 客户端 最新 2.4.0

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

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

回答关注问题邀请回答
收藏

5 个回答

  • 晨
    2018-11-12

    可以参考下这里的建议https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html

    2018-11-12
    有用
    回复 1
    • 客迈云
      客迈云
      2018-11-14

      AppID:wx12479162f0374858。烦请尽快处理

      ios 支付问题 能不能找人处理下  , 小程序里没有申诉入口

      2018-11-14
      回复
  • CKL
    CKL
    2018-11-14

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

    2018-11-14
    有用
    回复
  • Wang
    Wang
    2018-11-12

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

    2018-11-12
    有用
    回复 1
    • CKL
      CKL
      2018-11-12

      谢谢,但是几个板块没有太多关联,看一下setTimeOut一些不是很重要的请求看一下能不能优化一下

      2018-11-12
      回复
  • Hasaki
    Hasaki
    2018-11-12

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



    参考文档

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



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

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



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

    2018-11-12
    有用
    回复 1
    • CKL
      CKL
      2018-11-12

      好的,谢谢。

      2018-11-12
      回复
  • 是小白啊
    是小白啊
    2018-11-12

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

    2018-11-12
    有用
    回复 2
    • 沙骑马
      沙骑马
      2018-11-12

      如果数据量很大,微信开发者工具所占的内存就会持续增加,直接电脑卡死。所以如果不是前端需要的数据,完全不必放在data里面,可以放在page外面,做全局变量

      2018-11-12
      1
      回复
    • CKL
      CKL
      2018-11-12回复沙骑马

      您好,谢谢!这个数据都是通过网络请求的数据。其实数据量一点都不大,我想应该是差不多同一时间调用setdata原因。

      2018-11-12
      回复
登录 后发表内容