- ベストアンサー
HTMLの全頁共通メニューをjsファイルでつくってしまうのは問題ないか
HTML30ページほどのサイトを作っています。 30ページに共通して表示させるGNB(リンクメニュー)があり、それをjavascript1ファイルでもって各HTMLより呼び出したいと思っています。 また、リンクとなるGNBの数はページ数の数だけあるので、今見ているページがどのメニューかわかるようにしたいと思っています。 ■aページを見ている場合 [a] b c d ■bページを見ている場合 a [b] c d e そこで、javascriptで呼び出し元HTMLファイル名を取得(location.hrefから、最終"/"までのパスを削除)し、 30個のif文を作成して判断し、表示させようと思うのですが、このやり方はどうなのでしょうか? javascriptオフの人用に「javascriptを使っています」という文章は表示するつもりですが、速度とブラウザ対応状況が気になります。 HTMLに埋め込んでいる状態と30個のifをかませるjavascript表示でそれほど速度差はないのでしょうか? 最近のブラウザ(IE6/IE7/FIREFOX3/SAFARI3)は保証したいと思うのですが問題ないでしょうか? 上記2点プラスアルファを考慮して、するべきかしないべきか。ご回答またはアドバイスをお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
全然アリな手法だよ ただ、懸念通り、やり方がブラウザによって違うから常に検証しないといけなくなるね。 慣れてくるとこれはこのブラウザではだめだとか、どのブラウザでも動く関数を作ったりとかするようになるよ 最近、そういうクロスブラウザライブラリが増えてきてるから探してみるのも良いかもね。
その他の回答 (1)
- dyna_1550
- ベストアンサー率34% (122/353)
共通部分はメニューということなので頻繁に更新されることはない、と 考えてよいでしょうか。 あくまで経験上の話で技術的な裏付けはないのですが、JavaScriptの外部ファイルは ブラウザにキャッシュされ、更新タイミングがよくわかりません。 ブラウザのリロードなどでは更新されなかったりして、デバッグの時に悩 まされることがありました。 そんなときは手っ取り早く、.jsファイルのファイル名を変えて対処しました。 当然、呼び出し側のHTMLの書換も必要です。 もし、perlかphpが使えるサーバであれば、共通部分を読み込むスクリプト を利用することをお勧めします。 ベタベタな方法としては、30のHTMLの共通部分に特定の文字列を 書いておいて、エディタで置換するなど。 ブラウザのキャッシュなんて気にしない、ということであれば この限りではありません。
お礼
回答ありがとうございます。 >もし、perlかphpが使えるサーバであれば たしかにCGIの方がサーバー側処理で確実だと思いますが、今回は環境と簡易にという点でjavascriptで実現することにしました。 キャッシュの件もアドバイスありがとうございます。 問い合わせ等があった時のために頭にいれておきます。
お礼
回答ありがとうございます。 あまり相談する人がいなかったので、実現に向けたアドバイスをいただけてほっとしました。 ブラウザは全部自分でみてみようと思います。