사용자의 성공적인 리셋이 저장되었습니다.
4011 단어 jquery-pjax
묘사
나에게'pjax:success'나'pjax:complete'이벤트를 관찰하는 것은 부족하기 때문에 전송된'success'함수를 저장하고 pjax 이벤트를 터치한 후에 코드를 약간 조정했을 뿐이다.나는 이것이 가장 좋은 방법이라고 의심하지만, 확실히 리셋을 추가할 수 있는 방법이 필요하다.그래서 본질적으로, 지금 나는 모든 pjax 호출에 리셋을 추가할 수 있다. 이렇게...
죄송하지만, 이 곡조들은 이미 기용되었습니다.497b979efb4e381c0bf9dc058a6f16c1a55a321a
토론 #1
그럼 약속은 어때요?$.pjax({url: "someurl",
"container": "#container",
"success" : function(data, status, xhr, options){
// do something here...
});
그렇다면, 나는 어떻게 특정한 pjax에 연결을 요청해야 합니까?API를 사용하여 이 작업을 수행하는 방법은 확실하지 않습니다.너는 단지 인터넷 주소를 보면 알 수 있니?토론 #2
@jaywhy13 왜 이런 활동들이 당신에게 부족합니까?너는 이 용례를 설명해 줄 수 있니?토론 #셋
이것이 합리적인지 아닌지는 확실하지 않지만...나의 첫 번째 문제는 그들이 연결을 끊었다는 것이다...전 세계 관찰자는 논리에 따라 코드를 분리한다...그래서 이거...
$.pjax({...}).then(function(){ .... });
내가 보기엔 이보다 훨씬 낫다...$.pjax({url : "firstUrl", ... }).then(function(){
// do something
});
$.pjax({url : "secondUrl", ... }).then(function(){
// do something different
});
둘째, 당신이 어떤 리셋이나 약속 모델을 사용할 때 나는 삶을 만들고 나 자신의 환경을 유지할 수 있다. 이렇게...보통, 나는 변수를 설정해서 pjax 요청을 보내고, 이 변수로 뭔가를 하려고 한다.간단한 예는 pjax가 불러오기를 요청한 후에 DOM 구성 요소를 포맷하는 것입니다.이거 생각해봐...// some global observer setup in perhaps document.ready
$(document).on("pjax:success", function(url, ...){
if(url == "firstUrl"){
// do soemthing
}
else if(url == "secondUrl"){
// do something else...
}});
// then somewhere else in code...
$.pjax({url: "firstUrl"});
// some other place in code...
$.pjax({url: "secondUrl"});
만약 어떤 리셋이나 약속 패턴이 없다면 나는 어떻게 해야 할지 모르겠다.jQuery의 success 함수 없이 pjax API를 다시 만드는 대신 그들의 ajax Complete 방법을 사용했다고 상상해 보세요.의미가 있었으면 좋겠어요.
토론 #4
나는 너의 뜻을 알지만, 내가 본 주요 문제는 요청한 URL에 따라 행동이 이렇게 다르다는 것이다.pjax는 일반적인 행위로 전체 사이트를 정의하는 경향이 있습니다.요청한 자원마다 자바스크립트 코드가 있으면 좋지 않을까요?
토론 #5
응답의 탭이 평가되고 실행됩니다.예시에서 전체 요청 (pjxax 요청이 아닌 것) 은 어떻습니까?pjax가 호출될 때마다 실행하려는javascript는 어떻게 됩니까?이외에도 구독 활동 대신
<script>
호출을 사용할 수 있습니다.그것은 너에게 유용하다.이것은 pjax 요청 옆에 있는 이벤트를 제공합니다. 상하문에서 one
변수를 사용할 수 있습니다.$.pjax({url : "firstUrl", ... }).then(
(function(){
return function(){
// use a, b and c here to do something
};
})(a,b,c);
);
on
답변 감사합니다.첫째, 나는 조금도 모른다.나는 네가 방금 묘사한 상황에 문제가 있다고 생각한다. 이것이 바로 내가 리셋이나 약속의 본질을 더 좋아하는 이유이다.확장할게요.
$(document).one('pjax:success', function(){
// do something
});
$.pjax({url : "firstUrl", ... });
$(document).one('pjax:success', function(){
// do something different
});
$.pjax({url : "secondUrl", ... });
용기가 다르다고 가정하다.두 번째 pjax 호출이 첫 번째 pjax 호출 전에 완료되면 SecondUrl 함수만 호출됩니다.이것이 바로 내가 포획할 수 있는 a, b, c
사례의 함수를 사용하는 것이 가장 좋다고 생각하는 이유이다.$(document).one('pjax:success', function(url){
if(url == "firstUrl"){
firstUrlFunction();
}
});
$.pjax({url : "firstUrl", ... });
$(document).one('pjax:success', function(url){
if(url == "secondUrl"){
secondUrlFunction();
}
});
$.pjax({url : "secondUrl", ... });
이것이 바로 나의 문제의 본질이다.그리고 응답 중인 스크립트 표시에 대해 나는 정말 이 길을 걷고 싶지 않다.이것은 나로 하여금 서버에서 JS를 작성하고 응답에서 되돌아오게 할 것이다. 나는 정말 이렇게 하고 싶지 않다.나는 코드를 깨끗하고 독립적으로 유지하는 것을 더욱 좋아한다.나는 내가 이 용어들을 정확하게 사용했는지 확실하지 않지만, 나는 네가
토론 #6
로 바꿀 수 있다고 생각하지 않는다ALL
.나는 그들이 다르다고 생각한다.성공이나 오류 함수를 전송하거나 약속 callback
모델을 사용할 수 있지만, pjax 이벤트가 observer
로 설정되어 있어서 callback
리셋으로 사용할 수 있는지 확인하지 못했습니다.
Reference
이 문제에 관하여(사용자의 성공적인 리셋이 저장되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/defunkt/jquery-pjax/issues/298텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)