code

google.setOnLoadCallback with jQuery $ (document) .ready (), 혼합해도 되나요?

codestyles 2020. 12. 29. 07:07
반응형

google.setOnLoadCallback with jQuery $ (document) .ready (), 혼합해도 되나요?


저는 Google Ajax API를 사용하고 있으며 API와 google.setOnLoadCallback()관련된 다양한 작업을 수행 하는 사용 하는 것이 좋지만 jQuery를 사용 $(document).ready()하여 Google API와 관련이없는 다른 JS 작업도 수행하고 있습니다.

이 두 가지 접근 방식을 하나의 문서에 혼합하는 것이 안전합니까? 아직 눈치 채지 못했지만 규모의 문제라고 생각합니다.


이 작업을 거의 수행해야합니다.

google.setOnLoadCallback(function() {
  $(function() {
    // init my stuff
  });
});

(jQuery 객체)가 사용 가능 하지 $(document).ready()않으면 할 수 없으므로 $콜백 내부로 이동해야합니다. 그리고 콜백 내에서 문서가 준비되었는지 확신 할 수 없으므로 그렇게해야합니다 ready().


이 문제를 죽음에서 일으켜서 미안하지만 1) 여전히이 문제에 대한 '답변'으로 나오고 2) 더 나은 해결책을 찾았습니다.

google.load구성 옵션의 개체를 사용하는 함수 에 선택적 세 번째 인수가 있습니다. 옵션 중 하나는 callback입니다. 또한 별도의 setOnLoadCallback통화 가 필요하지 않습니다 .

google.load('visualization', '1.0', {
    'packages': "charttype", 
    'callback': $jQ.proxy(me.setupChart, me)
});

그래서:

<script src="https://www.google.com/jsapi"></script>
<script>
$(document).ready(function () {
    function mapsLoaded() {
        etc etc etc
    }

    google.load("maps", "2", {"callback" : mapsLoaded});
});
</script>

참조 : https://developers.google.com/loader/#Dynamic


JavaScript 코드가 HTML 문서가 아닌 자체 js 파일에있는 경우 문서에서도 다음을 수행 할 수 있습니다.

<script>
        google.load("jquery", "1.7.0");
        google.load("jqueryui", "1.8.16");
        google.setOnLoadCallback(function() {
             var script = document.createElement("script");
             script.setAttribute("type", "text/javascript");
             script.setAttribute("src", "my.js");
             document.getElementsByTagName("html")[0].appendChild(script);
        });
</script>

이것은 my.js다른 모든 항목 Google에서로드 된 후에로드됩니다. 당신의에서 my.js파일 당신은 할 수 있습니다 $(document).ready(...). 따라서 애플리케이션 코드는 "Google에서로드"또는 "서버에서 직접로드"와 독립적입니다.


모든 것을 할 수 있는데 왜 섞을 $(document).ready()까요? google.setOnLoadCallback함수를 제거 하고 jQuery의 $(document).ready().

이:

google.setOnLoadCallback(chartEnrollment);

된다

$(document).ready(chartEnrollment);

참조 URL : https://stackoverflow.com/questions/556406/google-setonloadcallback-with-jquery-document-ready-is-it-ok-to-mix

반응형