2014-02-07 3 views
1

페이스 북과 트위터와 같은 소셜 미디어를 사용하여 일부 인터페이스 API를 테스트하기 위해 작은 데모 응용 프로그램을 개발했습니다.레일즈 - Turbolinks vs. Ajax Json 응답

보기에 Aya-Json 전화를 걸 때 turbolinks gem이 활성화 된 상태에서 "문제"가 있습니다. 때때로 (예, 가끔!) 오른쪽 페이지 (html) 대신 JSON 응답을보기 (예 : .json)로 렌더링합니다. turbolinks gem을 비활성화하면 문제가 더 이상 나타나지 않습니다.

누구나 이런 일이 발생하는 이유는 무엇입니까? 그리고 turbolinks 보석으로도이 문제를 피하기 위해 무엇을 할 수 있습니까?

당신이 더 잘 이해하기 위해 몇 가지 코드가 필요한 경우, 당신은 여기에 (때로는) 오류를 수행하는 호출 (Ajax 호출을 확인) 찾을 수 있습니다 : 링크

답변

1

Turbolinks가 다시로드됩니다 문제가 될 것이다


대표단

그것은 나에게 소리를 발생하지 않는 일반적인 자바 스크립트 DOM로드 프로세스를 의미하는 대부분의 시간 Ajax를 통해 페이지 같은 당신과 같이 특정 요소에 아약스 과정을 구속했습니다

$("element").on("click", function() { 
    $.ajax({.... 

    ...}); 
}); 

이 주변의 방법은 문서의 요소를 결합하는 javascript delegation를 사용하고, 당신이 찾고

필요로하는 요소에 위임하는 것입니다 코드에서, 나는이 작업을 수행 할 것 :

$(document).on("submit", "form", function(){ 
    // .... your ajax code 
}); 

나는 또한 당신이 unobtrusive javascript을 (보기보다는, 그것의 자신의 JS 파일에 넣어)를 사용할 수 있도록합니다. 더 많은 문맥을 제공해 주시면 더 맞는 맞춤 솔루션을 만들 수 있습니다.

+0

답장을 쓰셔서 고맙습니다. 시도해 볼게. 왜 가끔 이런 일이 일어나는 지 아십니까? 어떤 요청은 올바른 방식으로 처리되지만 다른 방식은 그렇지 않습니다. 그러나 "방법"은 똑같습니다. – damoiser

+0

문제가 없습니다! 구체적인 내용은 잘 모르겠지만 위임 사항은 Turbolinks를 사용하는 Rails 앱의 일반적인 문제입니다! –

+0

다시 한 번 지원해 주셔서 감사합니다. 나는 당신이 제안하고 일하는대로 노력했다! 잘 했어. – damoiser