2014-09-30 2 views
0

jQuery와 pjax (독립 실행 형)를 사용하는 응용 프로그램이 있습니다. jquery-pjax보다 더 유연하고 작은 npm pjax를 사용할 수 있는지 테스트하려고합니다.AJAX 템플릿 렌더링 후의 PJAX

내 함수 중 하나는 데이터를로드 한 후 div의 html을 설정하며,이 html에는 pjax 링크로 원하는 링크가 포함되어 있습니다 (예 : $('#link-container').html('<a href="/account_detail.html?='+account.id+'" data-pjax >')). 그러나이 링크를 클릭하면 pjax 요청이 아닌 전체 페이지가 다시로드됩니다.

pjax를 다시 구현할 수있는 방법이 있습니까? pjax : success 호출 (프로젝트 페이지의 whenDOMReady - https://www.npmjs.org/package/pjax)에서 new PJAX({elements:[a[data-pjax]]})을 시도하면 pjax ...가 사용되지만 리소스가 두 번로드됩니다.

아마 jquery-pjax ($ (document) .pjax (a [data-pjax] 등)를 사용하는 것이 가장 좋은 해결책이지만 이전에 이런 유형의 문제가 발생했는지 알고 싶었을 것입니다. jQuery와 non-jQuery pjax를 포함 할 수는 없지만 비동기 데이터 쿼리와 DOM 수정에 대해 이런 일이 발생할 수 있으며 다시 PJAX를 사용하려고합니다.

답변

0

저는 jquery-pjax를 사용하고 있습니다. 그것을 사용하거나 잘못 구성하십시오 - 또한 페이지를 새로 고침하여 발생한 문제 중 하나가 발생했습니다.

어떤 방법 으로든 문제가 발생했는지 여부는 모르겠지만 Firebug와 "Console"탭에서 Firefox를 사용하여 o를 클릭하라고 제안합니다. n "Persist"는 일반적으로 도움이 될 수있는 오류를 발견하고 어딘가의 오류로 인해 페이지가 새로 고쳐질 수 있습니다. 콘솔이 새로 고쳐지면서 페이지를 새로 고칠 수도 있습니다.

<div id="pjax-container"></div> 

그리고 - PJAX이 같은으로 내용을 삭제하는 것이

<a href="/account_detail.html?=2" data-pjax>bla</a> 

을 당신은 용기가 필요 : 내가 배운 내용

당신이 쓸 때 있는지 확인해야한다는 것입니다 처음에 PJAX를 구성하여 다음 객체를 바인딩합니다.

<script> 
    // this is how I define it in jquery-pjax, so adjust it as you use it. 
    $(document).pjax('a[data-pjax]', '#pjax-container'); 
</script> 

그래서 내가 배웠던 요점은 때 DOM 컨테이너 갑자기 HTML 본체에서 제거

  • 내가 두 번 헤더를 보내고있다

    • (백엔드 코드) (사업부 아이디 = "pjax 컨테이너")과 : PJAX 신선한 누락되었습니다 그것은 HTML을 삭제하는 장소가 없어 - 그래서 그냥 페이지를 새로 고칩니다.
    • 처음에 [data-pjax]를 jQuery로 바인딩하면 새 DOM 객체는 jQuery에 의해 자동 바인딩되지 않습니다 (live/on을 사용하지 않는 한). 따라서 일반 <a> 태그로 작동하고 페이지를 다시로드합니다. 새 URL로 pjax 컨테이너가 "# 링크 컨테이너"의 경우 귀하의 경우에는
    • 일부 JS/PJAX 구문 오류를

    을, 나는 그것이 그 안에 태그를 배치하는 것이 좋습니다 있는지 확실하지 않습니다.