Getter 함수에 대한 모범 사례
웹 사이트에 표시하려는 배열이 unit public x[31]
있습니다. web3.js를 통해 x [0]에서 x [31]까지 32 개의 다른 호출을 만들 수 있습니다. 또는 배열을 표시하는 견고성 계약에 getter보기 기능을 추가 할 수 있습니다.
function showX()
public
view
returns (uint[32] memory Xout)
{
Xout= x;
}
이 함수가 내 견고성 계약에 내장되어 있으면 자바 스크립트 파일에서이 함수를 한 번만 호출 한 다음 배열을 가져야합니다. 따라서 더 많은 작업을 javascript 또는 solidity에 푸시 할 수 있습니다. 어느 방법이 더 효율적이고 우아한가요?
답변
1 LauriPeltonen
view
어쨌든 함수를 다루고 있기 때문에 큰 차이는 없습니다. 데이터는 사용하는 노드에서 직접 검색되며 블록 체인에 대한 실제 거래는 없습니다. 따라서 브라우저의 컴퓨팅 (JavaScript) 또는 노드의 컴퓨팅을 더 많이 사용하고 있습니다. 또한 이러한 통화에는 가스 비용이 들지 않습니다.
아키텍처 관점에서 나는 단순히 당신의 필요를 고려할 것입니다. 만약 당신이 많은 항목을 검색 할 필요가 없다면 개별적으로 검색하는 것이 더 쉬울 것입니다. 반면에 우리는 아마도 당신이 어떤 방식으로하든 상관없이 매우 미미한 양의 데이터에 대해 이야기하고 있으므로 속도 또는 메모리 요구 사항 측면에서 실제 차이를 만들지 않습니다. 나는 또한 어느 쪽이든 다른 쪽보다 더 우아하다고 생각하지 않습니다. 당신의 필요를 고려하십시오.