2013-10-30 4 views
0

실제로 10 개의 PHP 스크립트 (getlatest_t_s2.php, getlatest_h_s3.php ...)가 있고 10 개의 별도 자바 스크립트에서 실행하고 콜백 함수에서 ID를 가져옵니다. 무슨 뜻인지 보죠.여러 콜백을 사용하여 여러 PHP 스크립트 실행

, 그것은 단지 하나를 실행할 수 그래서 제 질문 대신 각각의 PHP 스크립트에 대한 10 가지 자바 스크립트를 실행하는 중입니다

var scriptToExecute="getlatest_t_s2.php";//php script 

//any data that you might want to send to the php script. 
var data ='anyData'; 

//call ajax function 
makeAjaxRequest(scriptToExecute,data,callBack); 
function callBack(data){ 
    $('#last_temp_s2').html(data); 
} 

function makeAjaxRequest(url,data,_callBack,_failure){ 
    $.ajax({ 
     url: '../php/', 
     datatype:"php", 
     type:'get', 
     data: data, 
     success:function(data){ 
      _callBack(data); 
     }, 
     error:function(jqXHR, textStatus, errorThrown){ 
      if(!_failure){ 
       console.log(errorThrown); 
      } 
      else 
      { 
       _failure(jqXHR,textStatus,errorThrown); 
      } 
     } 
    }); 
} 

HTML

<td>Temperature</td> 
<td align="right"><div id="last_temp_s2"></div></td> 

JS입니다

자바 스크립트 나보다 적어도 덜 10?

+0

현재 코드가 작동합니까? 어쨌든 10 개의 다른 호출을 만들어야합니다. 코드를 줄일 수는 있지만, 백그라운드에서 각 스크립트를 호출해야하므로 모두 같습니다. –

+0

예, 작동 중입니다. 오, 알았어 - 그럴 쉬운 방법이 있다고 생각 했어. – user2877744

+1

모든 데이터를 JSON 형식으로 반환 한 다음 JavaScript로 구문 분석하는 PHP 파일을 하나만 만들 수 있습니까? 이 방법을 사용하면 하나의 요청 수를 줄일 수 있습니다. –

답변

0

내가 제안하는 것은 모든 데이터를 배열로 처리 한 다음 해당 배열 (json encode($array))을 JS에 보내면 모든 JSON을 처리 할 수있는 잘 구성된 PHP 파일을 만드는 것입니다.

많은 사람들이 귀하의 웹 사이트를 방문하면 많은 수의 사람들이 10 개의 라인 파일에 10 개의 요청을 보내 게되므로 서버로드가 웹 사이트로드 속도를 크게 최적화합니다. 이는 SEO뿐만 아니라 1 초를 기다릴 필요가없는 방문객이 서버의 응답을 2 초 동안 기다릴 수 있습니다.

최신 브라우저는 모두 JSON을 구문 분석 할 원시 메소드가 있으므로 jQuery도 JS를 통해 JSON 데이터를 처리하는 것이 좋습니다.

크레딧 Guilherme Sehn은 이미 이것을 분명히하기 위해 이것을 지적했습니다.

관련 문제