カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Javascriptの動的ロードに関するメモ

概要: Javascriptで外部JSファイルを動的にロードするには。


Javascriptで動的ロードをするには、

  • XMLHTTPRequesst
  • Flashを使用した通信
  • JSONScriptRequest (script要素の追加による読み込み)
  • iframeHTTPRequest (iframe要素の操作による読み込み)

あたりが思いつく。どれもこれも実際に使用したことが無いので、 細かいところまでは分かっていない。

で、分かってる範囲でメリット・デメリット書くと、

  • XMLHTTPRequest
    • メリット
      • 同期・非同期が選択できる
      • ステータスコードが取れる
    • デメリット
      • ブラウザによって仕様が微妙に違う
      • クロスドメインで通信ができない
  • JSONScriptRequest
    • メリット
      • クロスドメインで通信ができる
      • DOMでscript要素を作成するだけで使用可能
    • デメリット
      • 同期・非同期がブラウザによって違う (Operaは同期で読み込む)
      • ステータスコードが取れない (ファイルが見つからなくてもエラーが出ない)
  • iframeHTTPRequesst
    • メリット
      • 使用できるブラウザが多い
    • デメリット
      • (X)HTMLのStrictでは使用できない
  • Flashを使用した通信
    • メリット
      • クロスドメイン可能
    • デメリット
      • Flashが使えないとそもそも動かない

こんな感じか。

iframeHTTPRequesstとFlashを使用した通信に関してはまったく分かってないので、 的外れなことを書いてる可能性が無くもない。なにか間違いがあったらコメントで。

JSANが気に入らないので、自分専用のライブラリ書いているんだけど、 動的ロードの部分をどうするかが決まらない。

最初、script要素による読み込みにしようかとも思っていたんだけど、 ステータスコードが取れないみたいなので、ちょっと問題がある。

参考までにJSANの場合をあげると、JSANはXMLHTTPRequestを使用していて、 ライブラリはローカルから読み込むと言う形になっている。

上記リストのデメリットに関しては、CGIの利用や、複数の組み合わせによって、 どうとでもなるような気がする。

うーん、どうしよう。