收藏
回答

调用云数据库更新update并回调把数据渲染到页面上的过程太慢了怎么加快?

+数量增加方法,我点击按钮,最起码要等一秒数据才在页面上完成更新渲染,控制台是会先打印出‘已更新已渲染’但数据往往是要子啊过一会儿才会增加

add: function (e) {

    db.collection('secShopcart').doc(e.target.dataset.id).update({

      data:{

        count:_.inc(1)

      }

    }).then(res => {

      console.log("已更新")

      var that = this;

      db.collection('secShopcart').get().then(res => {

        that.setData({

          goods: res.data,

          // count:res.data

        })

        this.setCart(res.data) //统计件数与价格

      })

      console.log("已渲染")

    })

    

  },



 <view wx:for="{{goods}}wx:key="_id">

      <van-card title='{{item.title}}desc='{{item.seller}}price="{{item.price}}thumb='{{item.image}}'

        num='{{item.count}}'>

        <!-- <view slot="tags">

          <view wx:for="{{item.tags}}"  wx:key="_id" wx:for-index="idx" wx:for-item="tag">

            <view wx:if="{{idx < 2}}">

              <van-tag type="primary">{{tag.name}}</van-tag>

            </view>

          </view>

        </view> -->

        <view slot="footer">

          <van-button size="minidata-id="{{item._id}}type="defaultplain bind:click="del">-</van-button>

          <van-button size="minidata-id="{{item._id}}type="defaultplain bind:click="add">+</van-button>

          <van-checkbox class="checkstyle="display:{{shows}}name="{{ item._id }}bind:change="onChange"

            data-id="{{item._id}}">

          </van-checkbox>


        </view>

      </van-card>

    </view>


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

2 个回答

  • 来某
    来某
    2020-10-27

     add: function (e) {

        db.collection('secShopcart').doc(e.target.dataset.id).update({

          data: {

            count: _.inc(1)

          }

        })

        let newgoods = this.data.goods

        let good = newgoods.find(v => v._id == e.target.dataset.id)

        good.count += 1

        this.setData({

          goods: newgoods

        })

        this.setCart(newgoods)

      },


    2020-10-27
    有用 2
    回复 1
    • 来某
      来某
      2020-10-27
      后面自己换了一种方法,性能提升了很多
      2020-10-27
      回复
  • 老张
    老张
    2020-10-27

    为什么要等数据库更新呢?

    2020-10-27
    有用
    回复 4
    • 来某
      来某
      2020-10-27
      购物车那个+号就是为了加数量啊 肯定得等数据库更新好了在把新数据渲染到页面上啊
      2020-10-27
      回复
    • 老张
      老张
      2020-10-27回复来某
      反正我们一般都是先渲染,再保存数据库;你们既然不认同,那就没其他办法了,速度慢只能生忍了。
      2020-10-27
      回复
    • 老张
      老张
      2020-10-27回复来某
      说实话,你们上面的逻辑我不太认同。购物车里,不需要每个动作都保存到库里啊,只要在onUnload里把最终结果保存到数据库里不就行了?
      2020-10-27
      回复
    • 来某
      来某
      2020-10-27回复老张
      当然你这样也行,
      2020-10-27
      回复
登录 后发表内容
问题标签