欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序setData數(shù)據(jù)量過大問題的解決與分頁刷新加載的實現(xiàn) ... - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序setData數(shù)據(jù)量過大問題的解決與分頁刷新加載的實現(xiàn) ...

發(fā)表時間:2021-2-28

發(fā)布人:葵宇科技

瀏覽次數(shù):157


問題:從綠色框中可以看出,顯示setData每次數(shù)據(jù)的上限是1024k,當數(shù)據(jù)量多大時,如何通過setData 來實現(xiàn)目的呢?

解決:從紅色框中可以看出,setData可以通過分批來對同一個data中的對象進行修改,而不是從新覆蓋某個data中的對象。

常規(guī)方式:通過setData提交數(shù)據(jù)的做法

  1. 一次性將所有的dataList數(shù)據(jù)全部通過setData提交:

./dataList.js

Page({ // 頁面的初始數(shù)據(jù) data: { dataList: [], }, // 生命周期函數(shù)--監(jiān)聽頁面加載 onLoad: async function () { let dataList = []; dataList = this.getDataListMethod(); this.setData({ dataList:dataList }) }, // 獲取目標一維數(shù)組 getDataListMethod(){ let dataList = []; .... // 獲取dataList具體操作 console.log(dataList); // [{...},{...},...{...}] return dataList; }; })

分頁渲染方式:通過setData提交數(shù)據(jù)的做法:

  1. 將dataList列表數(shù)據(jù)分組后存放在頁面中,需要數(shù)據(jù)時,提交指定dataList中指定位置的數(shù)據(jù),只需要加載本次需要的數(shù)據(jù):

**注意:**改進后方案中的 dataList 與常規(guī)方案中的 dataList 已經不是同種數(shù)組,該方法通過二維數(shù)組,將源數(shù)據(jù)進行分組,每次頁面列表需要下拉加載數(shù)據(jù)時,通過調用loadingData()方法添加一組數(shù)據(jù)來對dataList進行更新數(shù)據(jù)渲染.

./dataList.js

let dataGroupList = []; Page({ // 頁面的初始數(shù)據(jù) data: { pageNum: 0, dataList: [], }, // 生命周期函數(shù)--監(jiān)聽頁面加載 onLoad: function () { let dataList = []; dataList = this.getDataListMethod(); // dataGroupList已經在頁面首定義好了。 dataGroupList = this.groupArray(dataList, 10); // 頁面加載時加載的數(shù)據(jù): this.setData({ ['dataList[0]']:dataGroupList[0] }) }, // 頁面列表下拉,加載新數(shù)據(jù) loadData: function(){ let pageNum = this.data.pageNum + 1; // 本次要加載的數(shù)據(jù): this.setData({ ['dataList['+ pageNum +']']:currentLoadingData, pageNum: pageNum }) }, // 獲取目標一維數(shù)組 getDataListMethod: function () { let dataList = []; ... // 獲取dataList具體操作 console.log(dataList); // [{...},{...},...{...}] return dataList; }, /** * 對一維數(shù)組進行二維化 * dataArray:源數(shù)組 * subGroupLength:子數(shù)組元素的個數(shù) */ groupArray: function(dataArray, subGroupLength) { let start = 0; let dataGroupArray = []; while(start < dataArray.length) { dataGroupArray.push(dataArray.slice(start, start += subGroupLength)); } console.log(dataGroupArray); // [ [{...},{...},...,{...}], [...], [...], ..., [...] ] return dataGroupArray; }, })
<!--dataList.wxml--> <view wx:for="{{dataList}}" wx:for-item="pitem" wx:key="{{pindex}}"> <view wx:for="{{pitem}}" wx:for-item="item" wx:key="{{index}}"> <text>item.xxx</text> <text>item.yyy</text> </view> </view>

相關案例查看更多