ゲッター機能のベストプラクティス
Webサイトに表示したい配列がありunit public x[31]
ます。web3.jsを介して、x [0]からx [31]への32の異なる呼び出しを作成できます。または、配列を表示するだけのソリディティコントラクトにゲッタービュー関数を追加することもできます
function showX()
public
view
returns (uint[32] memory Xout)
{
Xout= x;
}
この関数がSolidityコントラクトに組み込まれているので、javascriptファイルでこれを1回呼び出してから、配列を作成する必要があります。したがって、JavaScriptにさらに多くの作業をプッシュするか、堅牢性を高めることができます。どちらの方法もより効率的/エレガントですか?
回答
1 LauriPeltonen
view
いずれにせよ関数を扱っているので、大きな違いはありません。データは使用するノードから直接取得され、ブロックチェーンへの実際のトランザクションはありません。したがって、ブラウザのコンピューティング(JavaScript)またはノードのコンピューティングをより多く利用していることになります。また、これらの通話にはガス代はかかりません。
アーキテクチャの観点から、私は単にあなたのニーズを考慮します:おそらく多くのエントリを取得する必要がない場合は、それらを個別に取得する方が簡単かもしれません。一方、どちらの方法を使用しても、データの量はごくわずかであるため、速度やメモリ要件の点で実際の違いはありません。また、どちらの方法も他の方法よりもエレガントだとは思いません。ニーズを考慮してください。