요청이 중지됨
3889 단어 jquery-pjax
묘사
Firefox와 Google Chrome에서 자주 중지 요청을 받습니다.나는 이것을 디버깅해 보았는데, 이 코드를 발견하였다
if ( xhr && xhr.readyState < 4) {
xhr.onreadystatechange = $.noop
xhr.abort()
}
일리가 있지만 다른 요청이 끊기지 않으면 요청 중지 문제도 발생한다.나는 이 코드로 이 점을 검증했다
if ( xhr && xhr.readyState < 4) {
alert('already pjaxing...');
}
팝업 창이 표시되지 않지만 요청은 보통 중단됩니다.서버 측이 모두 정상입니다.너는 이런 행위를 알고 있니?
토론 #1
알 것 같아.이것은 PJAX 요청의 기본 시간 초과로 인해 발생한 것으로, 이것은 나의 줄임말이다.토론 #2
이걸 생각해내서 반갑습니다...오전 내내 나는 머리를 부딪쳐서 왜 때때로 pjax가 일을 하고 있지만 다른 것은 일을 하지 않는지 이해하려고 했다.rails가 개발 모델에 있을 때 이것은 나에게 있어서 특별한 문제이다. 왜냐하면 시간 초과가 자주 초과되기 때문이다.
토론 #셋
시간 초과를 전체적으로 변경할 수 있습니다.감사합니다!나도 같은 문제에 부딪혔다.아마도 더 큰 기본값이 있어야 합니까?
건배,
$.pjax.defaults.timeout = 5000
에서도 중단된 전화를 많이 봤어요.내 응용 프로그램은 < 1초 안에 응답하지만, 시도하기 위해서, 나는 시간 초과를 30000으로 늘렸다.운이 나쁘다.나는 URL에 대한 세 번의 호출이 중단된 다음에 URL에 대한 마지막 호출이 성공한 것을 자주 볼 수 있다.
더 조사할 게 있나요?
토론 #4
나도 같은 일을 봤어.pjax 요청이 시간 초과 상태에 있어도, 나는 JS가 같은 URL에 많은 불필요한 요청을 촉발하는 것을 보았는데, 그 중 하나만 완료되고, 다른 요청은 계속하기 전에 중단될 것이다.다음 화면 캡처 참고:토론 #5
감사합니다. 저도 이 문제에 부딪혔습니다. 기본값을 사용하겠습니다.시간 초과 = 5000 근무.토론 #6
자손 후손을 위해 나는 줄곧 이 문제에 부딪혔고 자신의 머리카락을 뽑고 있다.나는 마침내 내가 되돌아오는 pjax 템플릿에서
토론 #7
함수를 호출한 것은 새로 불러온 요소에 귀속시키기 위해서라는 것을 깨달았다.분명히 이것은 불필요한 것입니다. 처리 프로그램에 연결된 여러 개의 요청을 생성했는데, 이 요청들이 되돌아와서
토론 #8
요청이 중단되었습니다.취소된 요청 수량이 계속 선형적으로 증가하고 새로운 페이지 불러오는 것을 막았을 때, 상황은 더욱 복잡해졌다.
따라서, 이 문제를 우연히 발견할 경우, 시간 초과가 길어지면 요청이 중단될 수 있습니다. (예를 들어 위의 @rdewell과 @dsabanin) 추가 이벤트가 처리 프로그램에 연결되지 않았는지 확인하십시오.
(참고: 문서 지시
$.fn.pjax()
가 되돌아오는 내용에 연결되어 있고 다시 호출할 필요가 없으면 유용할 수 있습니다.)xhr.readyState = 1
완벽하다.당신의 도움에 감사 드립니다. 이것은 나의 문제를 해결했습니다.$.fn.pjax()
@kromem 정말 고마워요. 정말 제 목숨을 구해주셨어요.나는 이 문제로 하루 종일 발버둥쳤다.토론 #9
You can now change the timeout globally: $.pjax.defaults.timeout = 5000
나에게 쓸모가 있다!너무 좋아요!
토론 #10
나도 같은 문제에 부딪혔다.그러나
토론 #11
나는 이 줄 코드를 사용해 보았지만 여전히 소용이 없었다.내 경우:
1. jstree와 pjax로 파일 불러오기
2. 내가 처음 눌렀을 때 두 가지 요청이 있었는데 첫 번째는 취소되고,
3. 내가 두 번째 클릭을 했을 때 세 개의 요청이 있었고 첫 번째와 두 번째 요청도 취소되었다
4. 마찬가지로 내가 세 번째 클릭을 했을 때 4개의 요청이 있었고 전 3개의 요청도 취소되었다.
나의 견해는 다음과 같다.
우선, 나는 나의 사건 귀속에 여러 번 문제가 있을 수 있다고 생각한다. 나는
토론 #12
를 사용한다.이 문제는 여전히 존재한다.
누가 나를 도와 나의 코드에 무슨 문제가 생겼는지 분석해 줄 수 있습니까?
코드:
$jstree.on("select_node.jstree", function(e, data) {
if (data && data.node && data.node.data == 'tree') {
// do normal ajax request
} else { // blob
// pjax here
$(document).pjax('nav a.jstree-clicked', '#tree-content-holder', {fragment:'#tree-content-holder', timeout:9000});
}
});
$.pjax.defaults.timeout = 5000
@defunkt 예를 들어 pjax에 옵션을 설정하는 방법을 설명할 수 있습니다.나는 우리가 이렇게 설정할 수 있다는 것을 안다.$.pjax.기본값입니다.시간 초과 = 5000
그러나 우리는 어떻게 해야만 이 단계에 진입할 수 있습니까?
달러.pjax("하나의 #contentlink", #pjax 용기");
jqury.off('click)
@razamehdi vteamsSee README:$(document).pjax('a#contentlink', {
timeout: 5000,
container: '#pjax-container'
})
Reference
이 문제에 관하여(요청이 중지됨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/defunkt/jquery-pjax/issues/46텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)