문제가 발생 할 수 있습니다. 새 jQuery 3
에있는 ready states
이 이제 완전히 asynchron
이기 때문입니다. 즉, 코드가 실행되도록 지정된 순서가 없음을 의미합니다. 이 때문에
, 당신의 ready state
이 실행 된 이전 load
이 트리거 된 것을, 발생할 수 있습니다. ready
함수가 마침내 트리거되면 사용자의 load
수신기가 너무 늦어서 실행되지 않습니다.
jQuery를 사용 :
그냥 load
이벤트 리스너 초기화 주위 ready state
을 제거,이 동작을 변경하려면. 이것을 ready
함수로 캡슐화 할 필요가 없습니다. 당신은 그것들을 초기화하지 않고도 초기화 할 수 있습니다. 당신이 필요하거나 두 이벤트를 등록 할 경우
// $(function() {
$(window).on("load", function() {
// this line will now be executed again
console.log("window is loaded!");
});
// });
, 당신은 자신에 의해 load
이벤트를 등록하고 다음에 무엇을해야 하는지를 ready state
내부를 결정할 수 있습니다.
// track the loading state by yourself
var windowLoaded = false;
$(window).on("load", function() {
windowLoaded = true;
});
$(function() {
function afterLoad() {
console.log("loaded");
}
// decide inside your ready state what to do
if(!windowLoaded) {
$(window).on("load", afterLoad);
}
else {
afterLoad();
}
});
jQuery를 플러그인
:
또 다른 경우는 너무 load
이벤트를 사용하여 jQuery를 플러그인 될 것입니다. 해결책은 load
이벤트를 추적하는 것입니다
$(function() {
$("#element").myPlugin();
});
예를 들어 : 개발자/사용자가 지금 ready state
에 플러그인 초기화를 감싸는 경우 이전
는
(function($, window) {
$.fn.myPlugin = function() {
$(window).on("load", start);
function start() {
console.log("plugin initialized and window loaded");
}
};
})(jQuery, window);
문제는 같은 설명, 다시 일어날 수 귀하의 플러그인에서 을의 ready state
으로 세분화하십시오.
(function($, window) {
// track the loading state beside the plugin initialization
var windowLoaded = false;
$(window).on("load", function() {
windowLoaded = true;
});
$.fn.myPlugin = function() {
// decide inside your plugin how to start
if(!windowLoaded) {
$(window).on("load", start);
}
else {
start();
}
function start() {
console.log("plugin initialized and window loaded");
}
};
})(jQuery, window);
결론 : jQuery 3
를 사용하는 경우 다른 사용자가/다른 브라우저를 실행할 수 있기 때문에이 문제가되지 당신에게 일어나는
경우에도, 귀하의 테스트에서, 당신은, 바로 그 코드를 변경해야 이 문제로. 다른 사람은 asynchron
이기 때문에 문제가 생길 수 있습니다. 코드가 실행되면 언제/알 수 있습니까?
그가 원하지 않는 사람도 있습니다. –
실례합니다, 귀하의 의견을 이해할 수 없습니다.무슨 뜻인지 설명해 주시겠습니까? @ CeylanMumunKocabaş – eisbehr
당신이 그것을 설명하고 이해할 수 있습니다, 내가 그것을 이해하고 싶지 않더라도 - 내가 알게 될까요? –