Rev. 2.73

Andrew Dupont씨를 비롯한 Prototype 개발팀은 Prototype 1.7 RC1을 릴리즈했습니다. 기본 셀렉터 엔진을 Sizzle로 교체했으며, 새로운 layout/dimensions API를 제공하고 관련 메서드들이 추가되었습니다. 그리고 셀렉터 엔진은 라이브러리를 빌드할 때 선택할 수 있도록 되어있습니다. 아래와 같은 빌드 명령으로 NWMatcher로 변경할 수 있습니다.

rake dist SELECTOR_ENGINE=nwmatcher

Element#on

새롭게 추가된 메서드인 Element#on은 event의 생성 및 삭제를 더욱 간결하고 쉽게합니다. 물론 종전과 같이 Element#observe를 사용해도 무방합니다.

/* Prototype 1.6 */
start: function() {
  this.clickHandler = function(event) {
    // ...
  };

  $("messages").observe("click", this.clickHandler);
},

stop: function() {
  $("messages").stopObserving("click", this.clickHandler);
}

/* Prototype 1.7 */
start: function() {
  this.clickHandler = $("messages").on("click", function(event) {
    // ...
  });
},

stop: function() {
  this.clickHandler.stop();
}

Element.Layout

요소의 치수 및 옵셋을 관리하기 위한 Element.Layout 클래스가 추가되었습니다. Element#measure, Element#getLayout 메서드를 제공하며, 사용방법은 다음과 같습니다.

/* The simple case */
$('troz').measure('width'); //-> 150
$('troz').measure('border-top'); //-> 5

// Offsets, too:
$('troz').measure('top'); //-> 226

/* The complex case */
var layout = $('troz').getLayout();

layout.get('width');  //-> 150
layout.get('height'); //-> 500

layout.get('padding-left');  //-> 10
layout.get('margin-left');   //-> 25
layout.get('border-top');    //-> 5
layout.get('border-bottom'); //-> 5

layout.get('padding-box-width'); //-> 170
layout.get('border-box-height'); //-> 510

layout.get('width');  //-> 150

이 밖에 자체적으로 제공하고 있는 JSON 변환 기능이 ECMAScript 5를 준수하도록 수정하였다고 합니다.

Comments

Got something to add? You can just leave a comment.

  • 전강진 전강진

    http://firejune.com/1574 사실 syntax의 느낌은 난 prototype이 훨 좋단 말이지;;;

    from Topsy

  • leejaecheon leejaecheon

    RT @firejune Prototype 1.7 RC1 릴리즈 http://firejune.com/1574

    from Topsy

  • coba coba

    검색하다가 보게 되네요 저희회사가 1.6.1 쓰고 있는데 1.7로 바꾸는 순가 속도가 무한정 느려지더군요 1.6.1 속도는 괜찮게 나왔는데 말이죠 역시 정식 버전까지 기다려야 될듯
    씨즐 엔진이라길래 기대 했었는데 뭐가 문젠지 -ㅅ-;; 차이가 극명해서 안습
    어쨋든 정리 잘해두셨네요 수고하세요

    reply edit

Your Reaction Time!

captcha

avatar