10000 개의 데이터 테이블이 있고 쿼리 (jql)를 사용하여 테이블의 특정 데이터를 가져옵니다. 그리고 가져온 수는 673이지만 올바른 데이터를 열 때 데이터가 100 개만 전송됩니다. 여기에 내 코드 :JS parase 데이터가 약 8000 개의 테이블에서 JSON 형식으로 100 개의 데이터 만 전송
request({
/////////////////////////////////////
//query to get current open tickets//
/////////////////////////////////////
url: '/rest/api/2/search?jql=project=OWRT AND status in (Open, "In Progress", Reopened)&startAt=0&maxResults=-1',
success: function(response) {
var owrt = $.parseJSON(response);
var liktot = parsedata(response,'owrt');
console.log("OWRT max"+owrt.maxResults);
request({
////////////////////////////////////////////////////
//query to get current resolved and closed tickets//
////////////////////////////////////////////////////
url: '/rest/api/2/search?jql=project=OWRT AND status not in (Open, "In Progress", Reopened)',
success: function(response1) {
var fixowrt = $.parseJSON(response1);
var owrt_tot=owrt.total;
request({
//////////////////////////////////////////
//query to get year 2016 created tickets//
//////////////////////////////////////////
url: '/rest/api/2/search?jql=project = OWRT AND created >= 2016-01-01 AND created <= 2016-12-31',
success: function(response2) {
var cowrt = $.parseJSON(response2);
request({
//////////////////////////////////////////
//query to get year 2017 created tickets//
//////////////////////////////////////////
url: '/rest/api/2/search?jql=project = OWRT AND created >= 2017-01-01 AND created <= 2017-12-31&maxResults=-1',
success: function(response3) {
var cfixowrt = $.parseJSON(response3);
var owrtcre17 = parsedata(response3,'owrt2017');
var cowrt_tot=cowrt.total;
request({
/////////////////////////////////////////
//query to get year 2016 closed tickets//
/////////////////////////////////////////
url: '/rest/api/2/search?jql=project = OWRT AND status = Closed AND updated >= 2016-01-01 AND updated <= 2016-12-31',
success: function(response4) {
var fowrt = $.parseJSON(response4);
request({
/////////////////////////////////////////
//query to get year 2017 closed tickets//
/////////////////////////////////////////
url: '/rest/api/2/search?jql=project = OWRT AND status = Closed AND updated >= 2017-01-01 AND updated <= 2017-12-31',
success: function(response5) {
var ffixowrt = $.parseJSON(response5);
var fowrt_tot=fowrt.total;
request({
////////////////////////////////////////////
//query to get all tickets in this project//
////////////////////////////////////////////
url: '/rest/api/2/search?jql=project=OWRT',
success: function(response6) {
console.log("start1:"+reqcount);
var fullowrt = $.parseJSON(response6);
var fullowrt_tot = fullowrt.total
var obj = {};
obj['key']='OWRT';
obj['tot']=owrt_tot;
obj['totlink']=liktot[0];
obj['ntotlink']=liktot[1];
obj['fixntotlink']=fixowrt.total;
obj['ckey']='OWRT';
obj['ctot']=cowrt_tot;
obj['cre17totlink']=owrtcre17[0];
obj['cre17ntotlink']=owrtcre17[1];
obj['cfixntotlink']=cfixowrt.total;
obj['fkey']='OWRT';
obj['ftot']=fowrt_tot;
obj['ffixntotlink']=ffixowrt.total;
obj['fulltot']=fullowrt.total;
summary.push(obj);
reqcount=reqcount+1;
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key"]},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key"]},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key"]},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key","id","status","project","issuetype","issuelinks", "summary", "assignee", "type",'created']},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key"]},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key"]},
contentType: "application/json"
});
requestexe();
},
error: function(response) {
console.log("Error loading API (" + uri + ")");
console.log(arguments);
},
data: {"fields":["key","id","status","project","issuetype","issuelinks", "summary", "assignee", "type",'created']},
contentType: "application/json"
});
쿼리를이다에만 전송된다 (100)로부터 데이터를 fectching 때 "owrt_tot"정확한 전송되지만, 포함되는 총 수를보고 "liktot [0]"+ " liktot 1 ". the final outcome of data
그러나 총 수는 673입니다 그러나 위의 코드에서 전송 데이터는 (100) 총 수는 며칠 코드를 계속 실행 1,000 개까지 이후이 전입니다 그래서 거기에 아무것도 100에 저를 인도하는 메모리가 문제이거나 코드를 변경해야합니까?
요청을 중첩하는 것은 매우 오류가 발생하기 쉬울뿐만 아니라 끔찍한 것처럼 보입니다. 나는 당신이 먼저 당신의 요청을 쪼개고 당신의 결과를 그 후에 확인해 볼 것입니다. 어쩌면 당신의 오류 자체가 해결됩니다. 그렇지 않으면 refactored 버전을 게시하시기 바랍니다. 이것을 확인하십시오 https://stackoverflow.com/questions/12101687/nested-requests-are-blocking?answertab=votes#tab-top – Akaino