문제

방금 새 작업을 시작했는데 첫 번째 작업은 사이트의 JavaScript 코드를 정리하는 것입니다. 문제는 두 개의 JS 라이브러리가 사용되고 있다는 것입니다 (jQuery 및 프로토 타입 / 스크립트).

나는 어디에서 사용되는지 알아 내려고 노력하고 있지만, 특히 코드에 익숙하지는 않습니다.

누구든지 제안이 있습니까? 가능하다면 프로토 타입 / 스크립트를 떨어 뜨리는 것을 선호합니다.

도움이 되었습니까?

해결책

모든 페이지에 포함 된 모든 내용의 프로토 타입을 버리고, jQuery에서 noconflict를 제거한 다음 Firebug를 모든 오류를 보여줄 준비를하고 있으며, 모든 페이지를 하나씩 이동하여 기능을 JQuery 등가물로 대체하여 일이 제대로 작동 할 때까지합니다.

.. 엉덩이 방법에 페인을 받으십시오. 도움이 될 수 있습니다 : http://api.jquery.com/browser/

다른 팁

나는 단면 변화 일 것이기 때문에 JavaScript 라이브러리를 떨어 뜨릴 것을 제안하지 않을 것입니다. 매우 위험하며 현재와 미래에 가짜 버그를 일으킬 것입니다.

가능성은 프로토 타입이 사용될 것입니다 $ 변수와 그 jQuery가 실행됩니다 noConflict 모드, 그래서 그것은 참조됩니다 jQuery 변하기 쉬운.

예를 들어 까다로울 수 있습니다.

 // here $ = Prototype

 jQuery(function($){
     // here $ = jQuery

 });

 // here $ = Prototype

별도의 파일에서 :

// here $ = Prototype
(function($){
    // here $ = jQuery;
})(jQuery);
// here $ = Prototype

어떤 라이브러리가 참조되는지 확인하기 위해 상황에주의를 기울이는 것이 정말 중요합니다. 또한, 그것 완벽하게 허용됩니다 프로토 타입으로 수행 된 jQuery에서 무언가를하는 방법에 대해 그만두면 여기에 질문을합니다.

특히 프로토 타입을 없애는 것은 특히 "프로토 타입"을 얻은 코드베이스에서 일하는 사람들이 있다면 사악 할 수 있습니다. 나는 여기에서 나 자신에 대해 말하고 있습니다. 실제로 당신이 묘사 한 믹스를 가지고있는 매우 큰 웹 응용 프로그램에서 작업 한 결과 (나는 스크립트를 떠났을 때까지 스크립트의 물건이 사라 졌다고 생각합니다).

프로토 타입이 작동하는 방식으로 인해 모든 곳에서는 절대적으로 의존성이있을 수 있습니다.

이것은 약간 어려운 일입니다. 두 프레임 워크를 살고 살도록 제안하는 것은 나쁜 일이 아니며, 일이 작동하는 경우 나쁘지 않습니다. jQuery가있을 것입니다 noConflict 실제로 같은 페이지에 상주하는 경우 모드.

매우 유용한 도구 중 하나는 웹 개발자 도구 모음 Firefox의 경우 페이지로 이동하여 다음을 수행합니다. Information -> View JavaScript - 이것은로드 된 모든 JavaScript 스크립트의 전체 목록을 제공합니다. <script> 인라인 JavaScript뿐만 아니라 태그 <script> 태그, 인라인 이벤트 핸들러가 나열되지 않았다고 생각합니다.

그러나 당신이 할 수있는 한 가지는 단순히 프로토 타입이나 JavaScript를 사용하지 않고 오류가 적은 것을 보는 것입니다. 그런 다음 누락 된 것을 디버깅하려고합니다.

그것 ~이다 하나의 라이브러리에서 표준화하기 쉽지만 "파산하지 않은 경우 고치지 마십시오"라는 사례가 있습니다.

동일한 HTML에 동일한 영향을 미치면서 모든 프레임 워크에 대해 조금 배우는 데 시간이 걸렸습니다. Artlung Rosetta: 비교하여 프로토 타입의 구문과 jQuery의 차이점을 빠르게 다이빙 할 수 있습니다. 이것 그리고 이것.

행운을 빌어 요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top