• ベストアンサー

JavaScriptの外部ファイルについての疑問です。

Chaireの回答

  • ベストアンサー
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.2

多くのページで使うスクリプトは外部に出してブラウザにキャッシュさせれば表示速度が向上するかもしれません。ただしファイルを分割し過ぎるとサーバへの要求が増えるだけで読み込み速度は遅くなりますから,特定のページでしか使用しないスクリプトはそのページに埋め込んだ方が良い場合もあります(もちろん一つの外部ファイルに全てまとめてキャッシュさせるのもアリ)。 また,スクリプトに対応していない携帯端末などでは不要な部分を読み込まずに済むでしょう。ついでに script 要素の内容に </ を書いてはいけないとか,XHTML の場合は --,< を書いてはいけない(したがって <!-- --> で囲んでもいけない)などの文法的な制約から逃れられます。 速度よりも管理のしやすさを優先するなら,たとえば HTML には <script type="text/javascript" src="/common.js"></script> の一行だけを書き,common.js で // ページごとにスクリプトを切り替える var file = (document.URL == '...') ? '/sample1.js' : '/sample2.js'; document.write('<script type="text/javascript" src="' + file + '"></script>'); と script 要素を出力すれば,common.js で全てのページのスクリプトを集中管理できます(場合にもよりますが)。

non_milky
質問者

お礼

>外部に出してブラウザにキャッシュさせれば >表示速度が向上するかもしれません。 ここの所が疑問でした(^^ゞ JavaScriptの外部ファイルもキャッシュに残るんですね。 となると、複数ページに同じスクリプトを使用する時は、 外部ファイルの方が軽くなる可能性もあるんですね。 common.jsで全て管理する方法もあるんですね。 なるほど。。。 管理のしやすさの面では、仰る通り、楽そうですね。 >速度よりも管理のしやすさを優先するなら とのことですから、速度は多少犠牲になるのでしょうね。 ケースによって、考えて使いたいと思います。 ご回答、どうもありがとうございました!

関連するQ&A

  • 1ページ内での複数外部ファイル参照はできますか?

    こんにちは。 [a.html]と[b.html]というページ内の上部で共通する部分があるので、外部ファイルを読み込んで表示させる方法をとっています。 ここにもう一箇所、共通する部分を表示させたくて、同じ方法でファイルを読み出すようにしたのですが、最初の外部ファイルが二箇所に出力されるようになってしまいました。 よいアドバイスをお願いします。 参考) [a.html]&[b.html]の表示させたいところに下記を記述 <script language="JavaScript" src="*.js"></script> <script type="text/javascript"> <!-- document.write( menutext ) --> </script> ★*.jsは下記の二種類 1 [x.js] menutext ="" +"ひとつめ。" 2 [y.js] menutext ="" +"ふたつめ。"

  • 外部JavaScriptファイルから呼び出したい!

    ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。 <script language="JavaScript" src="../js/menu.js"></script> ↑とコピペした外部ファイルへリンクさせ、その後、 <script language="JavaScript">mmLoadMenus();</script> と記述してある部分があるのですが、うまく呼びだせてないようでランタイムエラーがでます。 すべてのJavaScriptを1ファイル内に記述しているときはうまく動作しているのですが、外部ファイルに切り離すとエラーが出ます。 外部ファイル化したために、mmLoadMenus();が動作しないので、どなたか分かる方、アドバイスをお願いします!!

  • javascriptの外部スクリプトファイルと"内部”の混合

    javascriptの外部スクリプトファイルと、外部ではない直接書くスクリプトを混合して使えないのでしょうか?

  • 外部javascriptファイルの中にさらに外部javascriptファイルを入れたい

    javascript初心者です。 メニューの一部を外部ファイルによるツリーメニューにし、 さらにメニュー部分全体を外部ファイルにしようとしましたが、 メニュー部分全体を外部ファイルに移したら、 中のツリーメニューが機能しなくなってしまいました。 いろいろ試してみましたが、付け焼き刃の知識では皆目見当が付きません。 ご指摘いただけると嬉しいです。内容は下記の通りです。 メニュー全体の外部ファイル「menu.js」 document.write('<div id="menu">'); document.write('<h1>お役立ち情報<\/h1>'); document.write('<ul>'); document.write('<script src="javascript\/tree.js" type="text\/javascript"><\/script>'); document.write('<li><a href="javascript:tree("click1");" title="">HOME<\/a>'); document.write('<\/li>'); document.write('<div id="click1" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第1ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第2ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="javascript:tree("click2");" title="">お知らせ<\/a>'); document.write('<\/li>'); document.write('<div id="click2" style="display:none;">'); document.write(' <a href="未設定" title="作成中です" target="未定">第3ページ <\/a>'); document.write('<br>'); document.write(' <a href="未設定" title="教えられません" target="未定">第4ページ <\/a>'); document.write('<br>'); document.write('<\/div>'); document.write('<li><a href="#">DOWNLOAD<\/a>'); document.write('<\/li>'); document.write('<\/ul>'); document.write('<\/div>'); 中に入れてあるツリーメニューの外部ファイル「tree.js」 function tree(id) { if (document.getElementById(id).style.display == "block") document.getElementById(id).style.display="none"; else document.getElementById(id).style.display="block"; } .htmlの記述はこうなっています。 <script src="menu.js" type="text/javascript"></script>

  • レイヤーメニューを外部Javascriptファイルで読み込む方法はないですか?

    よく、レイヤーとJavascriptを組み合わせてプルダウンン風メニューがありますが(Microsoftの上部メニューのようなの)、 これを外部ファイルとして各ページに読み込む方法はないでしょうか? メンテの効率上、フレームを使わずに全ページ共通のメニューを表示させたいのです。 できれば、レイヤープルダウンメニューには画像を使ってロールオーバーのアクションもつけれれば最高ですが…。 レイヤーでプルダウンメニューを作ることはできるのですが、外部ファイルとして読み込む方法を教えて下さい。 お願いします。

    • ベストアンサー
    • HTML
  • レイヤーメニューを外部Javascriptファイルで読み込む方法はないですか?

    よく、レイヤーとJavascriptを組み合わせてプルダウンン風メニューがありますが(Microsoftの上部メニューのようなの)、 これを外部ファイルとして各ページに読み込む方法はないでしょうか? メンテの効率上、フレームを使わずに全ページ共通のメニューを表示させたいのです。 できれば、レイヤープルダウンメニューには画像を使ってロールオーバーのアクションもつけれれば最高ですが…。 レイヤーでプルダウンメニューを作ることはできるのですが、外部ファイルとして読み込む方法を教えて下さい。 お願いします。

  • JAvaScriptの外部ファイルの記述について

    HTML内にJavaScriptの処理書くのが嫌で、外部ファイルにしてJavaScriptを読み込むようにしたのですが、このファイルに、実行したい処理を複数書いてしまうとHTMLで正しく処理されなくなるのは何故ですか?.jsファイルには処理は1つしか記述できないのでしょうか?CSSファイルみたいに1つのファイルに何個も処理を記述してHTMLに反映させるようにしたいのですが・・・。どなたにも質問できず困っています。どなたか教えて下さい。jsファイルには処理は1つしか記述できないものなのかどうか回答お願い申し上げます。

  • HTMLタグが書かれた外部ファイルを、HTMLファイルに読込みたい

    複数のHTMLファイル内で、同じHTMLタグを書く部分がいくつかあります。 それらのHTMLタグの部分を外部ファイルか何かにして、HTMLファイル内で読み込むようにすることは出来ますか? JavaScriptでは外部ファイル(jsファイル)の読み込みはできるようですが、HTMLではできないんでしょうか? ※尚、CSSではやりたい事は出来ませんでした。 共通化できるのはスタイルだけなので・・。 私が共通化したいのは、HTMLタグです。 例えば <TD>hogehoge</TD> や <IMG src="hoge.jpg"> などのタグを複数のHTMLファイルで共有する為に 外部ファイル化したいんですが そんなことって出来るのでしょうか・・? 上記のようなタグを複数のHTMLファイルで共通できる手段であれば、外部ファイルという形式じゃなくても別にいいのですが・・

    • ベストアンサー
    • HTML
  • javascriptを外部ファイルに置く方法

    スタイルシートを外部ファイルにおいてlinkで読み込んでいます。 ふとjavascriptもテキストタイプを変えてやればいくのではないかと 名案が閃きました。そこで下のようにしてみました。 <link rel="script" href="java.txt" type="text/javascript"> しかしダメでした。我ながらいいアイディアだと思ったのですが・・・ どうも調べてみたらlinkではいかないようでした。 外部にあるjavascriptを読み込む場合はどうすればいいのでしょうか。

    • ベストアンサー
    • HTML
  • Javascript外部ファイルが読み込めません

    外部.js ファイルに記述した関数の呼び出しが、 Windows + IE6 だとできるのですが、 Windows + NN7 Mac + IE5 だとできません。 エラーメッセージすら出ず、無反応の状態です。 もちろん、ブラウザの設定ではJavascriptはONです。 呼び出し方は <a href="javascript:関数名('引数');"></a> <a href="#" onClick="関数名('引数');"></a> の両方を試しましたが、 どちらも Windows + IE でしか動きません。 どうすれば正常に動くようにできるでしょうか? とても困っています。 どなたかよろしくお願いいたします!