2017-03-21 1 views
0

nav 아이템에 대한 링크를 동적으로 변경하는 페이지에 javascript 함수가 있습니다. 이것이 페이지에서 첫 번째가 아닌 다른 자바 스크립트보다 먼저 실행되도록 보장 할 수있는 방법이 있습니까?먼저 javascript 함수를 강제로 실행하는 방법이 있습니까

중요한 항목이기 때문에 앞으로이 스크립트를 실행하기 전에 다른 스크립트가 중단 될 가능성이 있기 때문에 질문하고 있습니다.

+0

여기를 실행할 수 있습니다 ... https://learn.jquery.com/using-jquery-core/document-ready/ ... 물론 많은 'document.ready'가있는 경우 무엇을하고 있는지를 추적하는 것이 거의 불가능합니다 ... –

+1

바닐라 js를 사용하면 document.ready 대신 window.onload를 사용하여 수행 할 수 있습니다. – Mazz

+0

@Exception_al jquery를 사용할 수 없습니다. 그것은 페이지에서 인스턴스화되기 전에 실행되어야합니다. – zazvorniki

답변

-2

코드에서 코드 앞에있는 경우 JS가 단일 스레드 언어이므로 나머지 코드보다 먼저 실행됩니다. 나머지 함수가 DOM 항목을 가져 오기 전에 DOM 조작이 준비되지 않았다는 문제점이 발생할 수 있습니다. 그것은 까다로운 부분이며 계산하고 예측하기가 어렵습니다.

내 마음에 오는 가장 쉬운 솔루션은 플래그 나 약속과 함께 setTimeout 검사기를 사용하고 있지만 아마도이 문제에 대한 접근 방식은 setTimeouts를 전혀 필요로하지 않는다는 것을 다시 생각해야합니다. 실제 코드로는 더 정확하게 표현하기가 어렵습니다.

+0

하지만 다른 javasccript가 발생하기 전에 이것이 발생하도록하고 싶습니다. 페이지 꼬리말이 나왔을 때 첫 페이지가 나타나야합니다. 다른 자바 스크립트 코드에 설정된 시간 초과를 설정 하시겠습니까? 난 미래의 개발자가 넣어 제어하려고 해요. – zazvorniki

+0

만약 내가 다른 모든 전에 나는 작은 체인지를 가진 (작은 setInterval와 함께) DOM 변경 기능을 변경하기 전에 페이지의로드에 DOM을 변경하고 싶습니다 나머지 코드를로드 할 수 있습니다. Afaik 브라우저/장치에 따라 다를 수 있으므로 DOM을 변경하여 JS 로딩을 진행할 수는 없습니다. 변경 사항이 플래그로 준비되었는지 확인하는 것만이 실행 가능한 솔루션 일 수 있습니다. 사용자에게 로딩 화면을 표시하고 플래그가 UX 개선을 위해 바뀔 때 페이드 아웃 할 수 있습니다. 하지만 다시 setTimeouts를 사용하지 말고 접근법을 다시 생각해 보도록 권합니다. –

+1

하지만 다시 변경하기 전에 내용이 페이지에 표시 될지 걱정하지 않습니다. 이 코드가 오류를 일으킬 수있는 페이지에서 실행되기 전에 누군가가 코드를 넣을 수 있으므로이 코드가 실행되는 것을 막을 수 있습니다. 나는 아직도 너가 settimeouts로 어디로 가고 있는지 이해하지 않는다. – zazvorniki

관련 문제