Hapijs/React/Sequelize/MySQL을 사용하고 있습니다. 저를 소중히 여기는 것이 있습니다. 나는이 문제에 대해 조사를 해왔습니다.Hapijs를 사용하여 많은 양의 데이터를 처리하고 보내십시오.
설정 :
우리가 가지고있는 게요 API에 AJAX 호출을 발행하여 구성 요소를 반응한다. API는 객체의 배열을 반환합니다. 그것은 React에 의해 표시되고 있습니다. 문제 : 테이블에서 데이터를 요청합니다. 이 데이터는 복잡한 객체의 배열로 반환됩니다. 이 객체들 각각은 sequlize 객체입니다. 또한 우리에게는 필요없는 많은 추가 속성이 있습니다. 코드가 응답 문에 도달 할 때 JSON 객체와 같은 간단한 배열을 보낼 때까지, 그 14 초 정도 걸립니다
flattenedParts.forEach(function(item) {
item.dataValues.Product = productsMap[item.dataValues.ProductId] || [];
item.dataValues.PartModule = partModulesMap[item.dataValues.PartModuleId] || [];
fullObjects.push(item);
});
reply(fullObjects).code(200);
: 우리는 (40K 객체)와 같은 HAPI 응답, 뭔가를 사용하여 해당 객체를 보낼 수 있습니다.
나를 위해 그것은 그 개체의 직렬화 시간이 오래 걸리는 것 같습니다. 그래서 저는 필요한 데이터만으로 일반 객체 배열을 만들려고했습니다. 나는이 같은 (40K 객체) :
이flattenedParts.forEach(function(item) {
item.Product = productsMap[item.dataValues.ProductId] || [];
item.PartModule = partModulesMap[item.dataValues.PartModuleId] || [];
var flat = new partCreator(item);
newParts.push(flat);
});
reply(fullObjects).code(200);
부품 제작자 기능이 간단했다 :
내가 데이터를 포함하는 간단한 객체와 배열 결국 마지막에 따라서function partCreator(part){
this.Product = {};
this.id = part.dataValues.id;
this.PartNumber = part.dataValues.PartNumber;
...
}
그 나는 필요하다. 속도는 이제 약 7 초입니다. 거의 50 %의 속도 향상. 하지만 내가 정확하다면 훨씬 빨라야합니다. 회신 기능으로 어떤 일이 벌어지고 있으며 어떻게 처리 할 수 있습니까?
'fullObjects'에서'JSON.stringify()'를 시도해보십시오. 어쩌면 방금 거대한 데이터 구조를 문자열 화하려는 것일 수 있습니다. 이 모든 것을 클라이언트에게 정말로 보내야합니까? –
현재 디자인으로 모든 결과를 보여주는 데이터 그리드가 있습니다. 그 데이터 그리드에는 많은 필터가 있습니다. 설계 상 전체 데이터 세트로만 결과를 얻을 수 있습니다. 현재의 디자인을 다시 생각할 필요가 있을지도 모른다. 단지 아직 아무것도 모른다. ( –