Rev. 2.73

Prototype 1.6.0Scriptaculous 1.8.0의 정식판이 동시에 릴리즈되었습니다. Prototype은 사용성 개선을 위한 구조변형과 성능 최적화 그리고 버그수정이 이루어졌고, Scriptaculous 또한 성능향상 및 버그수정과 Effect 성능개선, Effect 추가되는 등의 변동사항이 있습니다. 주요한 특징들은 RC(출시 대기)버전을 소개하면서 알려졌던 내용들로 구성되어 있으며, 자세한 변동사항은 아래와 같습니다.

Prototype 1.6.0

  • Ajax transport objects are now automatically wrapped in an Ajax.Response object.
  • Ajax.Response includes support for accessing JSON response bodies as JavaScript objects via the responseJSON property.
  • The class API now includes full support for inheritance and superclass method calls. (See Mislav’s tutorial for more info.)
  • Class objects now have an addMethods method for adding instance methods after creation.
  • Elements can be created easily with the new Element(...) syntax.
  • Element#insert provides a unified API to DOM element and HTML fragment insertion.
  • Element#select is an alias for getElementsBySelector and is now the preferred way to find elements by class name.
  • Element#wrap lets you easily wrap an element inside another element in place.
  • Enumerable methods on Array are now backed by native Array#forEach implementations when possible.
  • Enumerable now has aliases for equivalent JavaScript 1.6 Array methods, and support for JavaScript 1.6’s context parameter for automatic callback binding.
  • Enumerable#grep now calls the match method on its first argument, so you can use it to e.g. filter an array of DOM nodes by CSS selector.
  • Event objects are now automatically extended with instance methods, so you can write e.g. event.stop() instead of Event.stop(event).
  • Prototype’s event API now supports firing DOM-based custom events with Element#fire.
  • The new dom:loaded custom event fires when the entire document has loaded and is ready for manipulation.
  • Function#curry allows for partial application of function arguments.
  • Function#wrap facilitates simple aspect-oriented programming and provides the basis for Prototype’s superclass method call mechanism.
  • Function#delay delays invocation of the function by the given number of seconds.
  • Function#defer schedules the function to run as soon as the interpreter is idle.
  • The Hash API has changed, and you must now use Hash#get and Hash#set instead of directly accessing properties on Hash instances.
  • String#interpolate is a shortcut for instantiating a Template from the string and calling evaluate on it.
  • Object properties can now be used in template replacement strings. 1.8.0

  • Prototype 1.6 final
  • Complete rewrite of Ajax.InPlaceEditor and Ajax.InPlaceCollectionEditor
  • Full CSS inheritance in Effect.Morph
  • New core effect: Effect.Tween
  • Sound: play mp3 files for sound effects; uses native playback on IE and available plugins whereever possible # Duration and distance options for Effect.Shake
  • Performance improvements
  • Tons of bugfixes


Sam Stephenson씨는 Prototype 1.6.0 RC1을 발표했습니다. 한줌의 버그 수정과 트렁크 버전에서 소개한 클래스 개선사항 및 이벤트 API 변경 등이 수정/추가 되었습니다. 때문에 기존에 사용한 Event.observe 코드의 수정이 필요할 수도 있습니다. 이벤트들 중에서 “contentloaded”이벤트를 사용했다면, “dom:loaded.”로 변경해야 한다고 합니다. 새 기능으로는 읽기/쓰기 가능한 해시 클래스가 추가되었습니다. Hash#merge, Hash#update, Hash#clone, Hash#toObject, Hash.toQueryString, Hash#remove, Hash.toJSON 메서드를 추가로 사용하여 해시타입 배열을 자유롭게 다울 수 있습니다.

var myhash = new Hash(); = "Bob";  -->  myhash.set('name', 'Bob');;          -->  myhash.get('name');
delete;  -->  myhash.unset('name');

document.getElementsByClassName과 Element#getElementsByClassName 메서드 대신 $$ 또는 Element#select를 사용할 것을 당부하고 있습니다. 조금씩 API 스펙을 변경하려나 봅니다. 곤란하군요.


지난 5월 이후 1.7.1 베타3를 마지막으로 아무런 소식이 없던 Scriptaculous가 뜬금없이 1.8 미리보기 판을 공개했습니다. Prototype 1.6 RC0(트렁크 버전)을 필요로 하며, 다음과 같은 변동사항이 있습니다.

- Ajax.InPlaceEditor, Ajax.InPlaceCollectionEditors가 완벽한 리라이트를 지원
- Effect.Morph는 모든 CSS를 상속받게 됨
- Effect.Tween 새로운 코어 이펙트 추가
- 사운드 이펙트를 mp3 플레이에 사용할 수 있음
- 성능 향상
- 다량의 버그 수정

더 자세한 내용은 CHANGELOG를 보세요. 사이트에서 다운로드(196kb zip) 할 수 있습니다.

Scriptaculous 1.8은 버그 수정이 주 목적인 듯 합니다. 약 5개월의 시간이 지난 것 치고는 조금 실망스럽군요. (여름을 타시나 봅니다.)