Google의 특정 프로젝트를 실행하기 위해 Google 앱 엔진을 사용합니다. 요청에 부과되는 30 초 제한 시간 때문에 커서 및 memcache를 사용하여 데이터 가져 오기 프로세스를 제한합니다.Google 애플리케이션 엔진 + jquery ajax 지연 + 커서
문제 문 :
- 나는 일부 사용자 상호 작용에 의해 생성 된 I는 서버에서 필요로하는 모든 세부 사항의 목록은 기본적으로 아약스 통화 기록을
- 통화 로그의 각 아약스 호출 할 수있다 30 초 제한에 도달 할 수있는 데이터가 있습니다. 그래서 그것을 분해하고 부품으로 돌려 보내야합니다.
- 로그의 모든 호출이 완료되면 반환 데이터를 기반으로 일부 사용자 지정 논리를 수행해야합니다.
지금, 나는 이미 이런 방식으로 작동하는 솔루션이 있습니다
이- 가 돌아 왔을 때 어떤 임의의 식별자
- 가진 첫번째 Ajax 호출을 시작을, 필요한 모든 데이터 여부를 확인하는 몇 가지 매개 변수를 확인 획득되었습니다. 그렇지 않으면
- 는 다음 단계에서와 같은 임의의 식별자로, 다시 호출을 수행 한 +, 지금까지
- 예라면 인출 된 어떤 데이터 저장 로그에서 항목을 제거하고 다음 항목
그러나이 코드는 모두 현재 ajax 호출 성공 이벤트에서 처리 중입니다. 나는 jQuery Deferreds에 대해 읽었고, 현재 채용되고있는 끔찍한 코드를 고치는 좋은 후보자처럼 보입니다.
는 이미 다음 알아 냈어요 : 종류의 동적 통화 목록을 만들 수
- 사용
$.when.apply(null, arrayOfDeferreds)
을 - - 지금 데이터 덤프를 저장하여 deferred.done 기능을 사용할 수 있습니다 jQuery.when 읽기 각각의 호출에 대해
문제는, 요청을 다시 호출해야한다면 ajax 요청을 해결하지 않는다는 것입니다. 단지 데이터를 저장하고 그와 동일한 임의의 식별자로 다시 호출을 수행합니다. 초기 전화? 모든 데이터가 저장 될 때까지 기본적으로 내 done 함수를 반복적으로 호출하는 것입니다. 이를위한 더 좋은 방법이 있다면 설명을하십시오. 다음과 같이
각 AJAX 호출에 파이프를 연결하여 완성되었는지 확인할 수 있습니다. 그런 다음 파이프에서 아약스 호출을 다시 정의하여 다시 호출해야한다는 것을 알았습니다. –