2015-01-11 2 views
0

저는 AJAX (jQuery AJAX가 구체적 임)를 처음 접했고 PHP 함수 (WordPress를 통해)에 3 번 게시하고 싶습니다. 3 POST 요청을 보내는 대신 AJAX 호출 병합을 호출하는 방법이 있습니까? 현재AJAX 호출 최적화

나는 다음과 같은 한 :

$.ajax({ 
    url: ajaxurl, 
    async: false, 
    cache: false, 
    type: "POST", 
    cache: false, 
    data: { action: 'box', id: box_id, target: "float", value_aj: "none" } 
}); 

$.ajax({ 
    url: ajaxurl, 
    async: false, 
    cache: false, 
    type: "POST", 
    cache: false, 
    data: { action: 'box', id: box_id, target: "width", value_aj: "1499" } 
}); 

$.ajax({ 
    url: ajaxurl, 
    async: false, 
    cache: false, 
    type: "POST", 
    cache: false, 
    data: { action: 'box', id: box_id, target: "margin", value_aj: "auto"} 
}); 

분명이 할 수있는 더 나은 방법이있다? 기본적으로 데이터를받는 함수는 텍스트 파일에 게시하는 것입니다.

간혹 비동기가 없으면 3 차 AJAX 호출 만 실행됩니다. 그래서 나는 비동기를 사용하지만 분명히 3이 완료 될 때까지 차단 될 것입니다 (이것은 나쁘다).

하나의 호출 내에서이 작업을 수행하는 더 효과적인 방법이 있습니까?

감사합니다.

+0

수신 스크립트를 제어 할 수 있으면 대신 하나의 동작 배열을 수락하도록 수정할 수 있습니다. 그리고 3 가지 액션 배열을 몸으로 가진 하나의 요청을 보냅니다. – zerkms

+3

수업 # 1 ... 절대 'async : false'를 사용하지 마십시오. 그것은 다른 스크립트가 실행되는 것을 차단하고 두통뿐만 아니라 사용자 불만을 일으킬 수 있습니다. – charlietfl

+0

또는 비동기 요청을 보냅니다. 'async : false'를 사용하는 것은 좋지 않습니다. –

답변

1

OP와 동일하지만 비동기입니다. 그리고 ajaxSetup을 사용하면

$.ajaxSetup(
    { 
     url: ajaxurl, 
     cache: false 
    } 
); 

$.ajax({ 
    type: "POST", 
    data: { action: 'box', id: box_id, target: "float", value_aj: "none" } 
    success: function(){ 
     $.ajax({ 
      type: "POST", 
      data: { action: 'box', id: box_id, target: "width", value_aj: "1499" } 
      success: function(){ 
       $.ajax({ 
        type: "POST", 
        data: { action: 'box', id: box_id, target: "margin", value_aj: "auto"} 
       }); 
      } 
    }); 
    } 
}); 
+1

코드를 설명하는 것이 좋습니다. – gab06

+2

1.'POST '요청은 캐시 될 수 없다. 2. 코드의 한 줄을 저장하는 것은 논란의 여지가있는'$ .ajaxSetup'이다. – zerkms

+0

@zerkms는 각 코드가 성공하면 아래 코드를 사용하는 것이 좋습니다. 다음을 수행하십시오. 이 방법을 사용하여 아무 것도 차단합니까? – user3724954