jQuery와 Prototype이 겪는 문제를 통합합니다.

2353 단어 prototype
프로젝트는 낡은 서버에서 실행되어야 하고, 낡은 서버는 밑바닥에Prototype을 사용하기 때문에 jQuery와Prototype이 충돌하는 문제를 해결해야 한다.
1. $기호 충돌 문제
이것은 그래도 해결하기 쉽다.
jQuery.noConflict()
모든 $기호를 jQuery로 바꾸지 않으려면, 즉시 함수로 원래의 jQuery 코드를 패키지할 수 있습니다.
(function($){



})(jQuery);



jQuery(document).ready(function($){



});



jQuery(function($){



});

 
2. for in 그룹 순환 문제
for in 문장 자체는 "bad practice"가 아니지만, 예를 들어 수조에 사용하기 쉽다.
for in 문을 사용하려면 먼저 100% 확신할 수 없으면hasOwnProperty를 사용하십시오.
for (var prop in obj) {



   if (obj.hasOwnProperty(prop)) {



       // prop is not inherited



   }



}

 
 
그 다음에 for in을 사용하여 그룹이나 클래스 그룹의 대상(array-like)을 대조하지 마십시오.Prototype은 자동으로 모든 그룹에 추이 속성을 추가하기 때문에 위hasOwnProperty를 사용해도 필터할 수 없습니다.하지만 다음과 같은 방법으로
for (var prop in obj) {



    if (Object.prototype.hasOwnProperty.call(obj, prop)) {



    // prop is not inherited



    }



}

 
 
3. IE 탄창 질문 "Stop running this script"
이것은 매우 이상한 문제다.원래 프레임은 IE에 문제가 없지만 Prototype을 가져온 후 IE 탄창을 가져옵니다
Stop running this script?



A script on this page is causing your web browser to run slowly. If it continues to run, your computer might become unresponsive.

 
이 문제에 대해 전혀 갈피를 잡을 수 없어 도입 파일을 삭제함으로써 마침내 원흉인 2만여 줄의 파일을 찾았다.처음에는 그 안의 어떤 문장이 이 문제를 야기한 줄 알았지만 그렇지 않았다.파일을 두 개의 파일로 나누면 이 탄창이 나타나지 않습니다.

좋은 웹페이지 즐겨찾기