アプレットのsetDataデータ過負荷時には、それに影響を与えるレンダリングしますか?

DATAS:[ 
 { 
 ID: 1000 
 名称: "帅哥" 
 タイトル: '...' 
 B: '...' 
 D: 0 
 F: 0 
 ... 
 }、
 { 
 ID: 1001 
 名前: "美女" 
 タイトル: '...' 
 B: '...' 
 D: 0 
 F: 0 
 ... 
 }、
 ... 
]

上:バックグラウンドでの戻りデータは役に立たない大量のデータを含むことができ、それが影響し、アプレットがインタフェースをレンダリングするときに、データの量が多すぎますか?

答えは次のとおりです。そこ

通常、我々はwxmlサイクルデータであり、その後、私たちは私たちに関係のない分野、およびその他のデータを削除する必要があります。しかし、非常に多くの言葉で小さなプログラムのドキュメントがあります:

setDataメソッドは、それがパフォーマンスの問題のインタフェースにつながる可能性が最も高い、最も頻繁に使用されるインタフェースを開発するための小さなプログラムです。一般的なミスの使用を導入する前に、簡単にsetDataメソッドの背後にある動作原理を説明します。

ワークス

レンダリングのWebViewとして表示層アプレットは、現在のキャリアを使用し、論理層は、独立したJavaScriptCoreにおける動作環境として作られています。フレームワーク、およびWebViewのJavaScriptCoreにおける内に独立したモジュールであり、それは直接共有データチャネルを有していません。現在、ビュー層と層のデータ転送ロジック、実際には、両側に設けられevaluateJavascriptによって達成しました。すなわち、JSのスクリプトにまとめユーザデータ送信、文字列に変換する送信ニーズ、及び変換されたコンテンツデータ、及びその後JSのスクリプトの独立した実行の形で両側に環境に渡されます。

evaluateJavascriptは、多くの面で影響を受ける可能性が実行は、ビュー層データをリアルタイムに到着していません。

JSスクリプトに従ってページをレンダリングするために実際には、我々のsetDataすべてのデータは、文字列に文字列を回しされているし、その後JSスクリプトに変換し、ページ。私たちが行うことができるようにすることは、新しいTempDataをした後、その後setDtaこのTempDataを最善であるように、このとは逆に戻り、バックグラウンドデータのこの長いリストは、データはマイクロ手紙を改善するために取り出される時に、データの伝送を最小限にありますページレンダリング速度アプレット、アプレットマイクロチャネル運用効率をアップグレードするには、ユーザーエクスペリエンスのマイクロチャネルアプレットを最適化します。

それは書くことができます。

TempDataをは=せて[]
 のための(I 0 =せ; I <datas.length; iは++ ){ 
    tempObjせ = { 
        ID:DATASを[I] .ID、
      名前:DATAS [I] .nameの
    } 
    tempData.push(tempObj)
} 
console.log(TempDataを)

また、高階関数はマップを使用することができます:

せtempDatas = datas.map(データ=> {
     リターン{ 
        ID:data.id、
        名前:data.name 
    } 
})
はconsole.log(tempDatas)

この時点で、我々はsetDataメソッドを使用します({})レンダリングの効率を向上させることができます

同時に、再び2つのヒントを共有するためのsetData

図1は、次のようにオブジェクトが存在します。

OBJ:{  "" 
    B: "B" 
    C: "C" 
}

この時点で、ページにレンダリングされ、その後、私たちがobjを変更されている、あなたが選択することができます。

①通常の練習:

OBJ =せ、この.data.obj 
obj.b = "私はそれ以降変更された"
 この.setData({ 
    OBJ:OBJ 
})

②しかし、より最適なアプローチがあります

この.setData({
     'obj.b': "私はそれ以降変更されました" 
})

2行のコードを節約するだけでなく、ページのレンダリングの効率を向上させるだけでなく、

2、配列オブジェクトに類似する配列は、データアレイの一つは、米国を与えるように改変することができる場合、であり、我々は、上記の方法を参照することができます

この.setData({
     '配列[1]': "私はそれ以降変更されました" 
})

我々は、変更するデータの複数のアレイを与える場合、我々は、ループを記述し、その後配列を変更し、これは形で書き込まれる、認識されなかったであろう

以下のために(私は=せ0; I <5; I ++ ){ 
     この.setData({ 
        [ `配列[ $ {I} ]`]: "私はそれ以降変更されました"  
    })
}

 オリジナル住所:https://blog.csdn.net/rolan1993/article/details/81738613

おすすめ

転載: www.cnblogs.com/memphis-f/p/12073303.html