<%Dewplayer(javascript)%> 肉少なめ | Item - YUIコンポーネントの読み込み順とか

YUIコンポーネントの読み込み順とか

Title :
YUIコンポーネントの読み込み順とか
Posted on :
2008-03-04
Author :
NKJG
Category :
Nucleusメモ
Hatena Star :

本文

メモ。

"Yahoo! UIを管理画面で使うとか"で書いたNP_YUIImporterには問題があって上手く動かないことが発覚。

例えば

containerコンポーネントでパネルを作るとき、ドラッグ・ドロップで移動できるようにする機能を持たせたい場合、containerコンポーネントより前にdragdropコンポーネントを読み込ませる必要があります。もちろん、移動が不要な場合はdragdropコンポーネントも不要です。

現バージョンのNP_YUIImporterを使って、

  1. dragdropなしで、containerを使うプラグイン
  2. dragdropも、containerも使うプラグイン

の順でNP_YUIImporterのimportメソッドが呼ばれると、dragdropコンポーネントの読み込みはcontainerコンポーネントの読み込みより後になってしまうので、パネルの移動は不可能になってしまいます。

結局

で、これを解消するためには、すぐにscriptタグを出力せず、どのYUIコンポーネントを読み込むかがすべて出揃ってから、何らかの形で整えられた順序でscriptタグを出力するようにしないといけないわけで、どう考えてもNP_YUIImporterの仕様変更は必須。めんどくさいなあ。

読み込み順の制御方法・案

YUI Loader Utilityを使う

YUI側で用意されているYUI Loader Utility ( Yahoo! UI Library: YUI Loader Utility ) を使う。処理を丸投げできるのでNP_YUIImporter側では簡単、に見えてonSuccessイベントの処理とか面倒。

固定する

あらかじめ、なるべくトラブルがおきない読み込み順を調べて、ハードコーディングしてしまう。後はそれにそって各コンポーネントを読み込む。Loader程じゃないけどちょっと気持ち悪いかも。

配列で受け取ってソートする

各プラグインごとに、求められる読み込み順を配列として受け取って、なるべく矛盾しないように並べ替える。上手く行くかわからない。