2013-07-05 5 views
1

문제는 후 시작, pjax는 일반 GET 요청을 시작합니다. 당신이 볼 수 있듯이이상한 pjax 동작 : GET 요청은 즉시 pjaxed 요청이 완료 등의 pjax 요청

$(document).on('pjax:end', function(event){ 
    alert("end"); 
    inpjax = false; 
}); 

$(document).on('pjax:timeout', function(event) { 
    alert("timeout") 
    event.preventDefault(); 
}); 

$(document).on('pjax:error', function() { 
    alert("error"); 
}); 

$(document).on('pjax:success', function() { 
    alert("success"); 
}); 

$(document).ready(function(e) { 
    inpjax = false; 
    $('.pj').click(function(e) { 
     e.preventDefault(); 
     if(!inpjax) 
     { 
      inpjax = true; 
      $.pjax({ 
       timeout: 5000, 
       url:  $(this).attr('href'), 
       container: '#codeport' 
      });  
     } 
    }); 
}); 

, 그것은 나에게 다른 stiuations에 대한 경고를 제공해야하지만, 난 단지 pjax에 경고를 얻을 :

내 코드는 다음과 같이 있습니다 종료 이벤트, 그 경고 후, pjax 동수 정상적인 GET 요청, 타이밍은 다음과 같습니다.

[17:36:02.002] GET http://localhost/abstract?_pjax=%23codeport [HTTP/1.1 200 OK 86 ms] 
[17:36:02.170] GET http://localhost/abstract [HTTP/1.1 200 OK 73 ms] 

시간 초과, 오류 또는 성공 알림이 표시되지 않습니다.

이 문제의 원인은 무엇일까요? 도와주세요 ...

해결책 :

문제 내 서버 측 코드가 전체 페이지로 응답되었고, 그 두 번째 GET 요청을 일으키는 것으로 밝혀졌다. 따라서이 문제가 발생하면 서버 측 코드가 PJAX 요청에 올바르게 응답하는지 확인하십시오.

+0

가 서버 지원 pjax을하는 것처럼에서 이벤트 메시지를 얻고 싶은 요소에 pjax을 추가 할 수

<!DOCTYPE html> <html> <head> <!-- styles, scripts, etc --> </head> <body> <h1>My Site</h1> <div class="container" id="pjax-container"> Download content from <a href="/page/2"> the other site </a>?. </div> </body> </html> 

시도? 이 설명서를 읽었습니까? https://github.com/defunkt/jquery-pjax? –

+0

아마도 이것을 위해 yui를 사용하는 것이 중요할까요? 은 왜 당신이 그것을 상관을 사용하는 방법 : http://yuilibrary.com/yui/docs/pjax/ –

+0

@이 Arekkusandaa.Irujasukin은 삭제 한 메시지에 대한 응답이다? 어쨌든, 나는 다음과 같은 코드를 변경 : '경우 ($ .support.pjax) { $ (문서) CSTE 연구진 ('클릭' '.pj', 기능 (이벤트) { \t VAR 컨테이너를 = "# codeport "; \t $ .pjax.click (이벤트, {컨테이너 : 컨테이너}) }) } 다른 경고 (". 아니 pjax 지원 ");' 그러나 같은 일이 일어나고은 아무것도 변경하지 않습니다. '[18 : 11 : 15.937] GET HTTP : // localhost를/추상적 _pjax = %의 23codeport [HTTP/1.1 200 OK (96) MS] [18 : 11 : 16.069] GET에 http : // localhost를/추상적 [HTTP/1.1 200 OK 91 ms]' 또한 제 브라우저는 아약스를 지원합니다. –

답변

0

예 : $(document).pjax('a', '#pjax-container')

+0

그래서 내 경우에는 내가이했다. –

+0

마지막으로 나는 내가 pjax 요청이 전체 페이지를로드하는 잘못된 논리 연산자를 사용 하였다 때문에, 서버 측에 대한 옳았 것 같다, 해결책을 발견했다. 나는 그것이 문제가 될 수 없다고 생각했지만, 내 추측과는 반대로 두 번째 요청을 일으켰습니다. 그래서 지금 고쳐서 완벽하게 작동합니다. 나는 어리석은 실수를했다고 믿을 수 없다 : D 시간 내 주셔서 감사합니다. 나는 당신의 시간 때문에이 대답을 선택합니다. –

+0

@ MahmutAkkuş @ MahmutAkkuş 감사합니다. 이봐 요, 정말로 감사합니다. –