トップ > ラボブログ

ラボブログ

« †フェイス女学園†が10万人突破!一方サン牧関連で事件報道 | メイン | スパイスボックス/テトテのiPhoneアプリが無料カテで10位! »

(解決)二つの外部ファイルをキャッシュさせたくないのですが…

あとで読む

スパイスラボ神部です。


OpenSocialアプリで開発中は外部ファイルのキャッシュを聞かせたくないので、次のような記述をするときがあります。


<script langage="javascript">document.write('<link rel="stylesheet" href="http://example.com/css/test.css?rand=' + Math.random() + '" type="text/css" />');</script>


これはこれでしっかり動作します。次にこれを


<script langage="javascript">document.write('<script language="javascript" src="http://example.com/js/test.js?rand=' + Math.random() + '" type="text/javascript" />');</script>


といったかたちで外部JavaScriptを指定しても同様にキャッシュされずに読み込んでくれます。


しかし不思議なことにこれらの行を二行続けて書くと最初に読み込まれた行しか評価されません。


Firefox, IE8ではそのような挙動で、Google Chrome では両方が読み込まれます。これは何故なんでしょう。


ちなみに


こんな方法もある


-JavaScriptメモ:javascript(.jsファイル)をキャッシュさせない2 - KUMA TYPE


と書かれているのですが、タグ中にインラインで記載された JavaScript ファイルが SSI ライクに実行されるはずもなく、アクセスログを見てみると example.js?+(new Date().getTime()) というファイルを取りに来ているだけでした。


解決


Twitterでブログエントリをつぶやいたところ、なかじまんさんからのアドバイスで解決しました!


-閉じ要素 '</script>' がないからだと思います。また、そのとき、そのままだと評価されないと思うので、'</scr'+'ipt>' とかしてごまかす必要もあります。


現在は下記のサンプルで動作を確認出来ます。


-外部ファイルのキャッシュ抑制


※JavaScriptを先に書いた場合


-外部ファイルのキャッシュ抑制その2


※CSSを先に書いた場合


IE, Firefox, Google Chrome すべてで動作しました。


追記


-2009-11-04 - おもしろWEBサービス開発日記


によると、さらにスマートな方法が提示されました。document.writeをHTMLコメントタグで囲むといいらしいです。こちらもやってみたいと思います!


(さらに追記)


こちらにサンプルを作ってみましたが、IEとChromeでは動作したものの、Firefox ではなぜかソースコードが表示される状態になってしまうようでした。

 



関連記事



ブックマークに追加する この記事についてTwitterでツイート

トラックバック

このエントリーのトラックバックURL:
http://www.spicebox.jp/cgi-bin/mt/mt-tb.cgi/1276

コメント ( 1 )

twk :

当てずっぽうですが、文字列を先に連結しておいて、document.writeを一回だけにするとどうですかね?

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

mixiアプリ本
4/22発売!

mixiアプリをつくろう!
OpenSocialで学ぶ
ソーシャルアプリ



(株)スパイスボックス
神部 竜二(著)

書籍情報






検索



神部竜二
ブログ執筆者の一人です。ネットの新しい話題や Web まわりのプログラミング、Web 広告について書いていきたいと思います。


About

2009年11月03日 23:27 に投稿されたエントリーのページです。

ひとつ前の投稿は「 †フェイス女学園†が10万人突破!一方サン牧関連で事件報道 」です。

次の投稿は「 スパイスボックス/テトテのiPhoneアプリが無料カテで10位! 」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

SEO ブログパーツ  

+ インデックス数計測 +