2010-01-04 3 views

답변

4

당신이 얘기하는 경우 :

  1. 는 AJAX 호출 async: false을 확인 : AJAX 호출이 당신이 세 가지 옵션이 다음 완료 될 때까지

    $.ajax({...}); 
    someFunction(); 
    

    someFunction()가 발생하지 곳. 하지 마십시오. 귀하의 페이지가 응답하지 않게됩니다.

  2. someFunction()을 AJAX 호출의 완료/성공/오류 콜백에 넣습니다. 이 방법이 권장됩니다. 또는
  3. aplugin을 사용하여 요청 대기열을 관리합니다 (예 : Ajax Queue).

AJAX의 첫 번째 A는 "비동기"를 나타냅니다. 이러한 호출이 비동기이며 동기식 프로그래밍 모델을 강제로 사용하지 않으려는 사실에 익숙해지기 만하면됩니다. 새로운 프로그래밍 모델에 적응하십시오.

+0

무엇이'async : false'에 대해 나쁘지는 않습니까? 이전에 사용했는데 괜찮은 것 같습니다. – Brian

+2

요청이 진행되는 동안 (Chrome을 사용하지 않는 경우 브라우저 전체가 잠겨 있기 때문에) 잠길 것입니다. 100ms 이하이면 눈에 띄지 않지만 요청이 지연되면 네트워크 문제가 있거나 서버 프로세스가 상당히 오래 실행되는 경우 큰 문제가 될 수 있습니다. – cletus

+0

연결 콜백 기능도 브라우저를 잠그는 것처럼 보입니다. 이 문제를 해결할 방법이 있습니까? – Brian

1

jQuery AJAX 함수를 사용하면 요청이 끝난 후에 만 ​​호출되는 콜백을 제공 할 수 있습니다. 해당 콜백의 일부로 비 아약스 함수를 호출하십시오.

관련 문제