2012-02-09 2 views
2

현재 jQuery AJAX 호출에서 일부 버그가 발생하는 프로젝트를 진행 중입니다. 이 경우 대부분의 경우 클릭 할 때 (또는 다른 이벤트 트리거에 대해) 특정 작업을 수행하도록 초기화해야하는 몇 가지 요소가 있습니다. $(document).ready 이벤트 트리거를 사용하는 대신 html 끝 부분에서 인라인 스크립트를 사용하도록 이러한 문제를 해결하기로 결정했습니다.앱에서 jQuery를로드하기위한 경쟁 조건이 있습니까?

그러나 이로 인해 jQuery 라이브러리 자체 (Google을 통해로드 됨)가 충분히 빠르게로드되지 않으면 어떤 일이 발생하는지 궁금해졌습니다. IE와 더불어, jQuery 라이브러리가로드 될 때까지 브라우저가 지능적으로 해당 코드 행을 실행할 때까지 기다릴 수 있습니까? 이 경우 경쟁 조건이 가능합니까? 지금까지 대부분의 이슈는 IE (8, 9조차) 나 파이어 폭스 (Firefox)에 나타나기도합니다.

편집 다음 $(document).ready 이벤트 트리거를 사용 의 변화는이 질문의 상황과 관련이 How can I ensure that a link's default action is always disabled?에서 제안되었다. 그것은 HTML의 하단에 인라인 스크립트와 잘 작동하는 것 같습니다. 이번에는 jQuery가 로딩되지 않았거나 (또는 ​​다른 요소) $(document).ready 이벤트가 절대로 제대로 트리거되지 않아서 문제가 발생했는지 여부가 명확하지 않습니다. 내가 왜 아약스 호출은 더 나은 배치 할 이유가 표시되지 않습니다

답변

1

외부 $(document).ready ... 모든 파일에 대해 실제로 $(document).ready 대기로드 할 ...이 (가 아닌 only reason 물론)

사용하는 이유는

따라서 jquery ajax 호출이 $(document).ready 콜백에 배치되어있는 한 모든 js 파일이로드되기 전에 확인할 수 있고 다른 곳에서 문제의 원인을 찾아야합니다.

+0

그러나 어떤 이유로 jQuery가로드되지 않으면 어떻게됩니까? $ (document) .ready는 jQuery가 브라우저에 이해를 위해로드되기 때문에 실패 할까? – Kenneth

+1

jquery lib를 포함하는

0

일부 브라우저는 도메인 간 스크립트를로드하기 전에 로컬 서버에있는 모든 JavaScript를로드합니다. 따라서 jQuery 라이브러리가 Google에서로드되기 전에 스크립트가 먼저로드 될 수 있습니다. $(document).ready 트리거를 사용하는 것이 좋습니다.

관련 문제