2012-04-11 5 views
0

나는 .. 그것은 내 모든 차트를로드하는 데 적어도 5-6초을ajax-json 요청으로 여러 .each를 최적화하는 방법은 무엇입니까?</p> <pre><code><div class="graph_score" title="2" > <div class="graph_score" title="3" > <div class="graph_score" title="4" > <div class="graph_score" title="5" > .... </code></pre> <p>내 JQuery와 :

html로 페이지 같은 페이지에 생성 차트 (hightchart)의 제비가 있고, :

$(".graph_score").each(function() { 
     id_graph = $(this).attr("title"); 

     $.getJSON('http://' + document.domain + '/school/teachers/generate_score/graph' + id_graph, function(data) { 
      options = data; 
      options.tooltip = { 
      formatter: function() { 
       var extrafield = this.series.options.extrafield; 
       var extrafield2 = this.series.options.extrafield2; 
       var extrafield3 = this.series.options.extrafield3; 
       return '<b> Note: ' + this.y + ' % <br/>' + '<b>Nom de l\'examen:</b>' + extrafield[this.point.x - 1] + '</b><br/><b>Pondération</b>' + extrafield2[this.point.x - 1] + "<br /><b>Date</b>" + extrafield3[this.point.x - 1]; 
      } 
      } 
      chart = new Highcharts.Chart(options); 
     }); 

    }) 

이 페이지를 더 빨리 렌더링하려면 어떻게해야합니까?

* 문제가 내 스크립트 호출은 8 시간 http : // '+ document.domain +'/ school/teachers/generate_score이므로 8 DOM 요청 .....하지만 어떻게 해야할지 모르겠다. 그 최적화 ...

들으

+0

스크립트에 타이머를 추가하여 AJAX 요청에서 데이터를 검색하거나 데이터를 표시 할 때 병목 현상이 발생하는 위치를 확인하십시오. 내 생각 엔 시간이 걸리는 것은 AJAX 일 것입니다. 서버 측 코드의 속도를 높이는 방법을 살펴보십시오. –

+1

또한 1 회의 호출에서 그래프의 모든 데이터를 반환 한 다음 각 그래프에 대해 JSON을 개별적으로 분석 할 수 있습니다. 다시 말하지만 그것은 서버가 얼마나 빠르며 얼마나 많은 연결이 수락되는지 여부에 따라 달라집니다. –

답변

2

을 네트워크 전송이 당신은 ID 목록을 받아 여러 결과를 반환하는 서버에 새 기능을 만들 수 있습니다, 시간이 오래 걸리는 생각합니다.

+0

또한 웹 서버가 데이터를 압축하고 있는지 확인해야합니다 (전송할 데이터가 적음) –

관련 문제

 관련 문제