jQueryヌース

Sunday, January 11

jQuery1.3リリース間近!

jQuery1.3 beta 2が公開されています。
昨年末のbeta 1に続き短い間隔でのリリースとなり、1/14の正式リリースに向けて追い込みとなりました。

年末年始の忙しさにかまけてbeta 1公開時にも書かなかったので、ここで主な変更点を。

Selectorエンジンにsizzleを搭載

いきなり大きな変更ですね。遂に、といったところです。
sizzleはjQueryの作者でもあるJohnResig氏が作った、新しいセレクターエンジン。
CSS3書式にも対応しながら、jQueryのものと比べてもかなりの高速化がされています。

主なセレクターエンジンのベンチマーク

元々、以前のバージョンにsizzleを入れることも可能だったので、今回は「正式に」搭載しますということですね。
ちなみに、自分が把握しているjQueryセレクターとの違いは次のようなものです。

":animated"が使えない

これは、jQueryの独自拡張であるために、意図的にsizzleからは外したのだと思います。
(sizzleはjQueryに実装することだけを目的としない、汎用エンジンのため)
今後、jQuery仕様として実装されるのかは不明です。

W3Cの(X)HTML DTD上に無いattributeにはヒットしない

おかげで、jGlycyは全く使えなくなります:-(
せめてXHTMLに対してだけでも、Namespaceがちゃんと実装されればな…とも思いますが。

attributeの指定に@が不要に

これは正式にはbeta 2から。
今まで[@attr=value]という形で指定していましたが、これが[attr=value]になります。

DOM操作系の関数を書き直し

セレクター同様に大幅に書き直されているようですが、こちらは仕様変更は特に発表されておらず、おそらくは速度向上のためのリライトのようです。
コードは確認していませんが、FF3.1などから実装されるECMA Scriptの新しい勧告分に対応するなどしているのでは。

.offset()関数

詳しくはわかりませんが、bodyOffsetなどに置き換えられているようです。

EventのNamespaces処理

以前より気にしている箇所ですが、今回リライトされたようです。
詳細は不明。

EventのBubbling処理

jQueryで設定されるイベントも、バブリングされるようになりました。
これによって、状況によっては今まで無かったタイミングでのイベント発生が起きる可能性があります。
(詳しくはここでは記述しませんが、JavaScriptの基本的なイベントに関する知識なのであちこちで説明されていると思います。「イベント伝播」などで調べてみて下さい)

これを従来通りの動作にするためには、各イベント処理を次のような条件式で囲ってやります。

if (this == event.target){
  // 実際の処理
}

しかし、全てのコードに手を入れるのも現実的かどうかは怪しく、かなり影響は大きそうです。

beta版のテストに協力する場合には、コードはminifyせずにそのまま取り込み(エラー発生時に箇所を特定しやすくするため)、bug trackerで報告してくれるよう、呼びかけられています。

Posted @ 1/11/2009 7:42pm – Permalink


Monday, September 29

MicrosoftとNokiaがjQueryを正式に採用

普及が徐々に進み、JavaScript FrameworkのデファクトになりつつあるjQueryですが、それを後押しするようにMicrosoftとNokiaが自社製品/サービスへの採用を決めたようです。

jQuery, Microsoft, and Nokia(公式blog)

Microsoftは今後Visual Studioに同梱されるようになり、同製品のユーザにはサポートもされるとか。
ASP.NETでもjQueryをベースにしたプラグインなどが開発されていくようです。

また、Nokiaは自社製携帯端末に標準搭載しているWebKitのランタイムに、jQuery本体を組み込む様子。
同端末向けのアプリケーションを開発する際には、既にjQuery本体が存在する前提での開発が可能になります。

両製品共に、jQuery本体が最新になった場合の対応などが気になるところですが(特に後者)、メインユーザにとっては朗報と言えるでしょう。

WebKit Run-timeへの組み込みは、可能性としてはPC版でのJsのVMに同梱できる可能性をも示唆しているかと。
また、携帯端末が標準で用いるとなれば、あの開発しにくいマルチタッチイベントなどへの対応も必要になってくるんだろうと思います。

Posted @ 9/29/2008 12:34pm – Permalink


Monday, September 1

Aptanaが最新版でjQuery1.2.6に対応

Jsコーダの味方Aptanaが、29日に公開された最新版でjQuery1.2.6に対応していました。

今回のバージョンアップでは、加えてExtにも対応。
利用者を増やしているライブラリなだけに、喜ぶ開発者も多いでしょう。
(自分は実際問題、FirebugがあればEmacsで書いているのが楽ですが)

設定方法はこちらから。

しかし正直なところ、彼らにはJaxerのLinux版開発に注力して欲しい…

Posted @ 9/1/2008 10:00pm – Permalink


Saturday, August 30

ロックスター退場:コナミコマンドの彼方に

昨日、一瞬目を疑うほどにリニューアルされたjQuery公式サイトですが。
新デザインの中心で異彩を放っていた「ロックスター」が、一夜にして抹殺の憂き目にあったようです。
(今は亡きロックスターの雄姿は昨日とっておいたスナップショットで)

リデザイン後、公式blogをはじめ各所で感想が書かれはじめました。
最初のうちは「おめでとう!」「かっこいい」「ユニークで良い」などと祝賀調のコメントが目立ったものの、徐々に
「全体としてはいいんだけど、ロックスターはいただけない」
「真ん中の漫画が子供っぽい」
「前の方が良かった」
「ダサい」
のような意見が目立ちはじめ、賛否両論はあったものの、結果としてロックスターには退場いただくことになった様子。
個人的には、消して正解だったんじゃないかと。

しかし公式チームは「ロックスター」のコンセプトは捨てきれない部分のようで。
トップページでコナミコマンド(↑↑↓↓←→←→ba)を入力すると、その想いを感じることができます。(Devoじゃないんだ?)
この機能は短期間(今日一日?)で消えてしまいそうなので、興味のある人はお早めに。

Posted @ 8/30/2008 11:55pm – Permalink


Friday, August 29

jQuery公式サイトが大幅リニューアル

jQueryの公式サイトが、激しくリニューアルしました。
http://jquery.com/

なんというか、夏休み明けたら「誰?」ってクラスメートが増えていた時のような、衝撃と寂しさが交じり合うようなモデルチェンジで。

旧サイト

新サイト

ロゴまで変わってます。
こちらも…と一瞬慌てましたが、よく見たらサイト内に公式ロゴ全く使ってませんね。
失礼なことで。
# しかしjQueryのロゴが、まさかDevoのエナジードームだったとは…

ま、どちらかというとjQuery UIの方にデザインイメージは近づいたんでしょうけど。
そういえばUI用のリファレンスページ、8割くらいで2ヶ月くらい放置中…
オリジナルプラグインの要望も応えられていないし、少し時間を割きたいところです。

Posted @ 8/29/2008 6:16pm – Permalink


Friday, June 6

jQuery 1.2.6 はEventの処理速度が2倍以上に

jQuery1.2.6のリリースノートが、ようやく公開されました。
1.2.5は1.2.4の破損コンパイル差し替え版なので、実質的には1.2.3以来の更新になります。

公式ブログによれば、今回のバージョンアップは細かなバグ修正とパフォーマンスの向上がメインのようです。
特にEventHandlingの処理は103%向上し、jQueryUIのdrag-and-dropなどはoffset関数の処理時間が向上したこととも併せて4倍以上のレスポンス向上をしているとのこと。

その他の機能追加は、以下の通りです。

.attr関数の修正

.attr()関数の実装がシンプルになり、持っていた幾つかの顕著なバグが修正されました。

.toggle関数が3つ以上の処理を引き受けられるように

toggleという処理の性格上、従来この関数は2種類の関数を引数に取ることしか出来ませんでした。
それにより、ON/OFFのような状態を交互に切り替えることが可能です。
しかし、jQuery1.2.6からは、この関数は幾つでも関数を渡すことが出来るようになっています。

$("#nuuu").toggle(
  function(){$(this).text("ヌー");},
  function(){$(this).text("ヌヌヌ");},
  function(){$(this).text("ヌヌ?");},
  function(){$(this).text("ヌーッ!");}
);

[実行結果]

ここをクリック!

.toggleおよび.one関数がunbind可能に

従来は”click”イベントをunbindすることでしか外せなかった2つの関数が、直接unbind可能になりました。

$("div").one("click", test);
$("div").unbind("click", test);
 
$("div").toggle(test, test);
$("div").unbind("click", test);

jQuery.makeArray関数が全ての値を対象に動作するように

jQuery.makeArray()関数は、従来は配列的な特徴を持つObjectのみを処理対象としていました。
今回の更新で、何が渡されても配列として返すように処理が拡張されています。

jQuery.makeArray( document.getElementsByTagName("div") );
// => [ div, div, div ]
 
jQuery.makeArray( true );
// => [ true ]
 
jQuery.makeArray();
// => []

beforeSend関数でajax呼び出しをキャンセル可能に

ajax関数のオプションとしてbeforeSend関数を設定すると、その戻り値でajax呼び出しの実行をキャンセルすることが出来るようになります。

$.ajax({
  beforeSend: function(){
    return $("#input").val() == "";
  },
  url: "test.php"
});

validationの処理などに非常に便利。

アニメーション速度の名前を自由に設定可能に

jQueryで用いられるアニメーション処理は、多くの場面で処理速度を指定できます。
そしてそれらの殆どは、ミリ秒単位もしくは文字列(“slow”, “fast”, “default”など)で指定することが可能です。
今回のバージョンアップから、これらの速度を示す名前に独自のものをつけたり、既存の値を変更したり出来るようになりました。

jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");
 
jQuery.fx.speeds.normal = 900;
jQuery.fx.speeds.char = 300;
$(".zaku").move("char");
Posted @ 6/6/2008 4:16pm – Permalink


jQuery日本語リファレンス リニューアル

jQuery日本語リファレンスを、少しだけリニューアルしました。

ニュースページ(ココ)へのリンクを追加したのと、今まで英語でしか公開していなかった自作プラグインを紹介するページを用意しました。
(プラグインのjGlycyでの使い方は、このWikiに書いていましたが)

気が向いたときだけの更新になりますが、今後ともよろしくお願いします。

Posted @ 6/6/2008 3:23pm – Permalink


テスト

今日は「クリエイターの日」。 ちとニュース的なコンテンツが欲しいなと、blikiを試してみることに。 さて。

Posted @ 6/6/2008 3:00pm – Permalink


最終更新: Y/m/d H:i