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の利用や、複数の組み合わせによって、 どうとでもなるような気がする。

うーん、どうしよう。

#FIXME

nyarlaが大体

Scrapbox でコメントや意見を書く