사용자의 성공적인 리셋이 저장되었습니다.

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 리셋으로 사용할 수 있는지 확인하지 못했습니다.

좋은 웹페이지 즐겨찾기