收藏
回答

频繁请求setData,应该怎么解决?

目前还没出任何问题,就怕上线了出问题。

几乎不能从需求上来砍,我要做的功能是从一段很长的string里面,每次取3个字符展示。

每次setData的数据,很少,只有三个汉字,但是请求的频率有300ms,用户不点暂停或者退出程序的话,会持续请求。

查了官方文档,对setData的频率说得有点模糊,我可以修改请求的频率,但也不能修改得太高了,这问题怎么解决呢?

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

9 个回答

  • 阿北
    阿北
    2019-09-10

    你如果要做抽奖,

    你就不能先把那个所谓的长字符串先从里面随机取数做成数组吗?

    为了你,我写了个demo,自己运行吧

    https://developers.weixin.qq.com/s/VTub1hm47Mb7

    2019-09-10
    有用 1
    回复 3
    • 渐层
      渐层
      2019-09-10
      太有心了!关注了!
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10
      我刚才仔细看了代码,给我的惊喜太大了,主要是在写法本身,我知道新的es里函数可以用``,但除了log之外,我还是第一次见,还有赋值,我用局部变量都是 let _name = this.data.arr.name,没想到可以用const {},谢谢谢谢,真的非常感谢
      2019-09-10
      回复
    • 阿北
      阿北
      2019-09-11回复渐层
      不客气,这种写法不知道的话多看看react,很多高级js写法
      2019-09-11
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-09-10

    那很长的字符串是一次性请求后台过来的?随机取3个连续的字?依次顺序显示?

    2019-09-10
    有用
    回复 3
  • ???
    ???
    2019-09-10

    300ms一次还行吧

    如果是连续有规律的改变其实可以用css的过渡或者动画显示..

    2019-09-10
    有用
    回复 4
    • 渐层
      渐层
      2019-09-10
      我之前没用过这两者,我先去了解下,如果还有什么疑惑,可能还会来打扰
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10
      我找到一个小程序,名字叫【吃什么Lite】,能帮忙看一下吗,他的效果,和我想要达到的很像,而且它改变页面非常快,就是用你说的css过渡或者动画写的吗
      2019-09-10
      回复
    • ???
      ???
      2019-09-10回复渐层
      它这个应该是随机的,一直在setData,这么简单的页面的话一直setData不会出什么问题。实在担心卡的话 可以像楼上说的那样写成自定义组件效果好些
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10回复???
      我的页面其实和它的一样简单,好的,那我着手写了,非常谢谢
      2019-09-10
      回复
  • 彡( ̄_ ̄;)彡
    彡( ̄_ ̄;)彡
    2019-09-10
    1. 你可以把展示字符串的部分单独做成一个组件,在组件里持续使用setData

    2. 如果你是从已有字符串中取出3个连续排列在一起的字符串,你还可以利用css动画,遮罩处理一下


    2019-09-10
    有用
    回复 8
    • 渐层
      渐层
      2019-09-10
      厉害,第二个方法可行,降低了setData的频率。但第一个我没太懂你的意思,组件里持续使用,和我直接持续使用,有什么区别吗
      2019-09-10
      回复
    • 小刺猬
      小刺猬
      2019-09-10回复渐层
      组件的渲染机制和页面的渲染机制不太一样
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10回复小刺猬
      可以简述一下吗,或者有文档吗
      2019-09-10
      回复
    • 彡( ̄_ ̄;)彡
      彡( ̄_ ̄;)彡
      2019-09-10回复小刺猬
      组件里持续调用setData,就像在page里面的局部更新一样,影响范围小些
      2019-09-10
      回复
    • 彡( ̄_ ̄;)彡
      彡( ̄_ ̄;)彡
      2019-09-10
      文档上好像有这方面的说明,另外工具初始简单项目,是一个计时器,也是这样干的
      2019-09-10
      回复
    查看更多(3)
  • 耿霄
    耿霄
    2019-09-10

    如果有变化在setData,没有变化就不setData

    2019-09-10
    有用
    回复 1
    • 渐层
      渐层
      2019-09-10
      就是要展现在页面上,除非有其他办法,展现在页面上,而不用setData
      2019-09-10
      回复
  • 原点的原点
    原点的原点
    2019-09-10

    实在得有,也不能去掉

    2019-09-10
    有用
    回复 2
    • 渐层
      渐层
      2019-09-10
      那就只能降低setData的频率了吗
      2019-09-10
      回复
    • 原点的原点
      原点的原点
      2019-09-10回复渐层
      2019-09-10
      回复
  • ʚ青ɞ
    ʚ青ɞ
    2019-09-10

    需求不能砍,只能做优化,提高频率呗。

    2019-09-10
    有用
    回复 1
    • 渐层
      渐层
      2019-09-10
      这个不是效率的问题吧
      2019-09-10
      回复
  • var 友原
    var 友原
    2019-09-10

    这么频繁是要干嘛

    2019-09-10
    有用
    回复 5
    • 渐层
      渐层
      2019-09-10
      需求就是这样,而且还不能避免
      2019-09-10
      回复
    • var 友原
      var 友原
      2019-09-10回复渐层
      我的意思是你这么频繁setData是要展示什么
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10回复var 友原
      快速阅读,也可以理解成一个点名器或者抽奖的,就全校同学的名字不断的滚动出现,我要很频繁的改变页面
      2019-09-10
      回复
    • var 友原
      var 友原
      2019-09-10回复渐层
      就不能一次性把数据全部请求过来吗
      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10回复var 友原
      数据一直都是有的,一个大的string,每次我截取就行了,但问题是我每次只展示1个名字,这不是每次都要setData吗
      2019-09-10
      回复
  • 鲤子
    鲤子
    2019-09-10

    什么鬼

    2019-09-10
    有用
    回复 3
    • 渐层
      渐层
      2019-09-10
      就,字面意思
      2019-09-10
      回复
    • 鲤子
      鲤子
      2019-09-10回复渐层

      类似点名器?

      2019-09-10
      回复
    • 渐层
      渐层
      2019-09-10回复鲤子
      哦对,你这个描述合理
      2019-09-10
      回复
登录 后发表内容
问题标签