這篇文章帶給大家的內容是關於微信小程式如何解決後台返回大量多餘數據的問題,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
台接口返回一個數組,數組裡面N多對象,每個對象裡面幾十上百條數據,最好玩的是,我只需要每個對象裡面的某兩個數據、、、 、
類似這種:
datas:[ { id:1000, name: "帅哥", title: '...', b: '...', d: 0, f:0, .... }, { id:1001, name: "美女", title: '...', b: '...', d: 0, f:0, .... }, ... ]
其實我只要id和name,找後台解決、、、算了吧,奈何天生就是個儒生,溫文爾雅,打架是打不贏的,要是能打贏的就直接打吧,打完就讓他們改!
資料量過多,對網路請求影響大嗎?說實話,不大,又不是幾兆的圖片,返回數據的速度反正我感受不到延遲。
但是資料量過多對小程式渲染介面有影響嗎?
答案是:有! 一般情況下我們是在wxml中循環data,然後取出item.id和item.name,其他資料看起來和我們無關,但是查看官方文檔setData相關資訊的時候有下面這一段話
setData是小程式開發中使用最頻繁的接口,也是最容易引發效能問題的接口。在介紹常見的錯誤用法前,先簡單介紹一下 setData 背後的工作原理。
工作原理
小程式的視圖層目前使用 WebView 作為渲染載體,而邏輯層則是由獨立的 JavascriptCore 作為運行環境。在架構上,WebView 和 JavascriptCore 都是獨立的模組,並不具備資料直接共享的通道。目前,視圖層和邏輯層的資料傳輸,實際上透過兩邊提供的 evaluateJavascript 所實現。也就是使用者傳輸的數據,需要將其轉換為字串形式傳遞,同時把轉換後的數據內容拼接成一份 JS 腳本,再透過執行 JS 腳本的形式傳遞到兩邊獨立環境。
而 evaluateJavascript 的執行會受很多方面的影響,資料到達視圖層並不是即時的。
其實就是我們setData裡面的所有資料都被轉成了字串,然後字串郵費轉換成JS腳本,然後頁面根據JS腳本去渲染頁面。 那麼我們能做的就是盡量少傳數據,而此時後台返回這一大串數據就與此相悖了,所以最好是新建一個tempData,將要的數據取出來之後再setDta這個tempData,以此來提高微信小程式的頁面渲染速度,提升微信小程式運作效率,優化微信小程式的使用者體驗。
我們可以這樣寫:
[mw_shl_code=applescript,true] var tempData = [] for(var i = 0; i < datas.length; i++) { var tempObj = {} tempObj.id = datas[i].id tempObj.name = datas[i].name tempData.push(tempObj) } console.log(tempData) [/mw_shl_code]
或使用高階函數map():
let tempDatas = datas.map(function(data){ return { id: data.id, name: data.name } }) console.log(tempDatas)
此時我們再使用setData({})就能提高渲染效率了
同時再分享兩個setData技巧
#1、有一個Object如下
obj:{a:"a",b:"b",c:"c"},
此時已經渲染到頁面了,然後我們修改了obj,此時可以選擇:
1)平時的做法
let obj = this.data.objobj.b = "我是后来修改的"this.setData({ obj: obj})
2)但是更優化的做法是
this.setData({ 'obj.b': "我是后来修改的"})
不僅省了兩行程式碼,同時還提高頁面渲染效率2、其實和1差不多,就是Object變成數組Array當我們要給數組的其中一個資料進行修改時,我們可以參考上面的方法
this.setData({ 'array[1]': "我是后来修改的"})
當我們要給數組的多個資料進行修改時,我們會寫一個循環,然後修改array,此時是無法識別的,要寫成如下形式
for(var i = 0;i < 5;i++) { this.setData({ [`array[${i}]`]:"我是后来修改的" }) }
相關推薦:
以上是微信小程式如何解決後台傳回大量多餘資料的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。