문제

여러 AJAX 라이브러리 사용에 관해 어떤 경험을 공유할 수 있나요?

Prototype에는 유용한 기능이 있고 일부는 jQuery, Yahoo 라이브러리 등에 있습니다.모든 라이브러리를 포함하고 각각에서 원하는 것을 사용할 수 있습니까? 일반적으로 이름 공간 등과 함께 모두 잘 작동합니까?속도를 위해 포함할 라이브러리의 크기/수에 실질적인 제한이 있습니까, 아니면 무시할 수 있습니까?특히 함께 잘 작동하는 쌍이 있습니까(예:프로토타입/Scriptaculous) 또는 그렇지 않은 쌍?

도움이 되었습니까?

해결책

모든 라이브러리를 사용할 수 있지만 사용하지 않는 것이 좋습니다.그렇게 많은 JavaScript를 다운로드하고 실행하면 브라우저가 질식하고 사용자 경험이 느려질 가능성이 높습니다.사용자 입장에서도, 개발자 입장에서도 하나를 선택하는 것이 훨씬 나을 것 같습니다.컨텍스트/아키텍처 전환이 적고 유지 관리할 코드가 적습니다.

다른 답변에서 말했듯이 대부분은 충돌하지 않습니다.

Yahoo!를 참조하세요. 탁월한 성능 자세한 내용은 사이트를 참조하세요.

다른 팁

당신은 사용할 수 있습니다 Google AJAX 라이브러리 API.jQuery, 프로토타입, script.aculo.us, MooTools 및 dojo에 대한 공통 배포 네트워크와 로딩 아키텍처를 제공합니다.

YUI는 네임스페이스가 매우 강력하므로 다른 라이브러리와 충돌해서는 안 됩니다.

언급한 대로 충돌 없는 모드에서 jQuery를 실행할 수 있습니다.

원기 하다 다른 라이브러리와 잘 작동하는 데 문제가 있습니다. 부분적으로는 다음과 같은 핵심 객체를 수정하기 때문입니다. Array. 프로토세이프 그러한 문제를 해결하려고 시도합니다.

Script.aculo.us는 Prototype 위에 위치하는 단순한 위젯 라이브러리이므로 이 둘은 분명히 함께 잘 작동해야 합니다.

이 모든 것은 당신이 의미하는 바입니다 ~할 수 있었다 애플리케이션에서 YUI, jQuery, Prototype & Script.aculo.us를 사용하지만 단일 라이브러리를 사용하면 유지 관리가 훨씬 더 쉬워진다는 것을 알 수 있습니다.

나도 jQuery를 믿는 사람이므로 다른 것에 대한 지식이 부족하다는 점을 사과드립니다. 하지만 ...

jQuery를 그토록 훌륭하게 만드는 것은 충돌 없는 모드입니다. 예를 들어 다음과 같이 할 수 있습니다:

$('#foobar').whatever();

충돌 없음 모드에서는 다음을 수행합니다.

var jq = jQuery.noConflict();
jq('#foobar').whatever();

걱정할 것이 하나 줄었습니다.나는 프로토타입이 비슷한 기능을 제공하고 Yahoo도 마찬가지라고 생각합니다.

그러나 어쨌든 나는 jQuery를 너무 많이 옹호하여 사람들을 화나게 하고 싶지 않지만 어떤 라이브러리를 선택하든 그들은 모두 필요한 모든 것을 거의 할 수 있다고 생각합니다.특히 장점을 생각해보세요. ~ 아니다 세 가지 다른 라이브러리를 배워야합니다.

세 가지 모두 능력이 있어야 합니다.가장 마음에 드는 것을 선택하고 확장하세요.:)

저는 현재 프로젝트에서 jQuery와 Microsof ajax 도구 키트의 javascript 파일 전용 버전을 나란히 사용하고 있습니다.

나는 jQuery를 사용하고 결국 Microsoft를 제거하게 될 것이라고 생각합니다.나는 jQuery를 처음 접했지만, 그것에 대해 더 많이 배울수록 더 매료되었습니다.

가장 좋은 전략은 여러 라이브러리를 사용하지 마십시오.문제에 더 많은 라이브러리를 적용하고 싶은 유혹이 들지만 이는 비효율적이고 오류가 발생하기 쉬우며 다른 사람이 코드를 유지 관리하기 어렵게 만듭니다.

대부분의 경우 문제 영역과 문제 해결에 가장 적합한 라이브러리를 이해하면 여러 라이브러리를 사용하지 않아도 됩니다.또한 이러한 모든 라이브러리에 대한 수많은 플러그인과 확장 기능도 있습니다.

예를 들어 JQuery는 즉시 도메인 간 JSONP 호출을 지원하고 JQueryUI에 멋진 위젯 라이브러리가 있지만 Prototype은 그렇지 않습니다.

$.getJSON('http://anothersite.com/mashup.json?callback=?', function(data) { });

Prototype은 정말 좋은 OO를 지원하고 DOM을 탐색하기 쉽지만 위젯과 매시업을 만드는 데 필요한 도메인 간 기능이 일부 부족합니다.

var Foo =  Class.create({  
  initialize: function(name) {
    this.name = name;
  }   
});

var Bar = Class.create(Foo, {
  initialize: function($super, name)  {
     $super(name);
   }
});

Mootools는 훌륭한 효과, 좋은 OO 지원, 정말 견고한 위젯 및 도메인 간 요청을 제공하지만 (이것은 단지 내 인상일 수도 있습니다) 개발 커뮤니티는 (mootools 외부의) 글로벌 커뮤니티와 다른 커뮤니티만큼 협력적이고 사회적이지 않습니다. 커뮤니티(프로토타입은 이런 식이었습니다).이는 주요 개발자가 미국 이외의 지역에 거주하여 많은 컨퍼런스에 참석하고 더 큰 커뮤니티에 참여할 수 없기 때문일 수 있습니다.그래도 그것이 당신을 완전히 단념하게 놔두지는 않겠지만, 명심해야 할 것이 있습니다.

Ruby on Rails는 기본적으로 프로토타입과 Scriptaculous를 모두 사용합니다. 둘 사이에는 겹치는 부분이 거의 없기 때문입니다.나는 그 외에도 yui 스니펫을 사용해 본 적이 있으며 문제가 발생한 적이 없습니다.로드 시간이 문제이지만 라이브러리는 일반적으로 캐시되므로 로드된 첫 번째 페이지에만 있습니다.

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