收藏
回答

setData对数据有无长度限制?

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug iOS 11.0.3 iphone7 6.6.6

我有一个列表,当我列表的length超过520条时,多余的数据就渲染不出来,setData数据有长度限制?

最后一次编辑于  2018-05-23  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

5 个回答

  • ོ
    2018-05-23

    经过我的测试,最后得出的结论是,setdata确实有长度限制, 这个长度的阈值是1048560个字符,如果setData设置的内容超过1048560个字符,就会造成数据解析失败。

    2018-05-23
    赞同 1
    回复 3
    • 田超
      田超
      2018-05-24
      你怎么测出来的
      2018-05-24
      回复
    • ོ
      2018-05-24回复田超
      data: { list: [] } onReady: function() { var _new = []; for(var i = 0; i < 10000; i++) { _new.push({ id: i }); } this.setData({ list: _new }); } wxml------ <text wx:for="{{list}}" wx:key="{{index}}">{{item}}</text> 你自己慢慢加上限就能测出来
      2018-05-24
      1
      回复
    • 田超
      田超
      2018-05-24回复
      哈哈哈
      2018-05-24
      回复
  • 牛
    2018-05-24

    文档里面有写   单次设置的数据不能超过1024kB

    2018-05-24
    赞同
    回复 7
    • ོ
      2018-05-24
      晕,有写吗?
      2018-05-24
      回复
    • 牛
      2018-05-24回复
      https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page.html
      2018-05-24
      回复
    • ོ
      2018-05-24回复
      晕死了,没看到,不过已经解决了,再加一层组件,分批次渲染
      2018-05-24
      回复
    • 杨永安
      杨永安
      2018-05-26回复

      妙啊

      2018-05-26
      回复
    • 攀
      2018-07-20回复

      能看看实现实现吗


      2018-07-20
      回复
    查看更多(2)
  • iZdo
    iZdo
    2018-05-24

    看文档啊 一次不能超过1024kb啊

    注意:

    1. 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致

    2. 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据


    2018-05-24
    赞同
    回复
  • 沁塵
    沁塵
    2018-05-24

    一次加载那么多不影响用户体验和性能么。。分页加载你好我好大家好

    2018-05-24
    赞同
    回复 7
    • ོ
      2018-05-24
      我知道要做分页,但你用下面这种setData的方式做分页,迟早要出问题的 data: { list: [] } requestSuccess: function(res) { this.setData({ list: this.data.list.concat(res.list) }) }
      2018-05-24
      回复
    • Jason
      Jason
      2018-05-25回复
      你这种是假分页……
      2018-05-25
      回复
    • ོ
      2018-05-25回复Jason
      那真正的分页怎么做?
      2018-05-25
      回复
    • 攀
      2018-05-25回复
      不要把数据一次性加载完,而是分批从服务器获取数据
      2018-05-25
      回复
    • ོ
      2018-05-25回复
      我是分批取得,但取回来总得set到一个列表里,来渲染出来吧。小程序的setData机制,并不太适合做无限翻页交互,我看很多应用都是列表达到一定长度,就做了一个手动选择页码的控件来跳页码,清空列表,虽然这个问题我已经解决了,做到了无限翻页,但我想知道你们是怎么做无限翻页交互的,有可能你们的方法比我的好。
      2018-05-25
      回复
    查看更多(2)
  • sunshine
    sunshine
    2018-05-25

    有限制,就算没限制,你也悠着点啊。响应数据大小处理一下不更好?没必要的数据就不要返回了。

    2018-05-25
    赞同
    回复