以下斜め読んだ内容

pseudo translation of useful posts, book reviews, remarks,etc. twitter: feeddict

斜め読み

Optimizing Your External Javascript References

Scott Schillerブログより。
外部jsのロードがウェブサイトの見た目などで性能を損なう可能性について。
起こる理由と、対処法いくつかについて。
jsファイルからjsファイルを読むやり方を紹介してる中で
ただロードする関数を作るだけでなく
ロード完了後にコールバック関数を指定できるように作ってる部分が勉強になった。
以下斜め読んだ内容

  • 外部jsのロードがサイトを壊す(かもしれない)仕組み
    • jsのロード中は、ブラウザの他のプロセスが中断する
    • ネットワーク上の理由でjsのロードがとても遅くなる場合が起こりうる。そのときサイトが崩れる
    • この問題は回避できる、と
  • 回避策1:defer属性使う
    • 現在IEのみサポート。Fxは3.1でサポート予定。Operaはjsの遅延をサポート
    • defer属性をscript要素に指定すると、script要素内のjsのコードのパースと実行を延期してくれる
    • 外部jsのロードは延期されない
    • defer属性とdocument.writeは組み合わせて使わないようにする
  • 回避策2:jsファイルからjsファイルをロード
    • 条件。ロードされるjsではdocument.write使わない
    • DOM使ってscript要素作って、ロード。
    • DOM経由でロードされたjsは他のページのコンポートネントのロードを妨げない(並列DLが可能になる)
    • オプションとして、DOM経由でロードされたjsのロード完了時にコールバックを設定もできる
  • 回避策3:ローカルに保存。
    • エレガントじゃないけど、一応言っとく。
  • 回避策を使うことの意義
    • 非同期処理の実装の徹底化
    • プログラミングスタイルとか、ウェブサイトのパフォーマンスとか。