技術資料らしきものJavaScriptjsファイルを動的に読み込む事について考える

何のために??

例えば1分おきとかに自動的にデータがリロードされたりとか、ボタンを押すたびにサーバからデータを取得しなおしたいとか、そういった用途がちょっとだけ必要になったので、色々考えた(いや、それほどでもない)ので、その時の出来事についてメモしておこうかなぁ、という訳です。


それってajaxでよくね?

全くその通りだと思います。私もその時ajaxで対応したかったのですが、

「既にリアルタイムで更新されているデータがサーバ上にあり、かつそのデータは他のサービスで使用中な為、吐き出し方を変えられず、かつshift-jisであった。」

という状況で、日本語も混じっているデータだった為ajaxで文字化けせずに取得する方法が私には思いつかず、ajaxで対応するのを断念した、という経緯です。

その元のデータファイルがjsファイルだったので、
以下のように対応してみることに。

まず、HTML側では表示させないiframeを用意。
display: none; で対応するとsafariかなんかで上手く動作しなかたので、枠外に飛ばす事に。

a.html

次にiframe側で、読み込みたいデータ(jsファイル)を読み込み、さらにリロード(以下の例では10秒ごとにリフレッシュ)させるようにする。

b.html

※data.jsのファイルに時間の引数を付けて呼び出しているのは、キャッシュ(特にIEの)対策です。

そして、親のHTML側に関数(上の例の場合は「setTrigger(data)」)を用意して、そっちのjavascriptでやりたい処理を書けば、一応shift-jisのデータでも動的に処理出来たよ、と。

なんか強引ですねぇ。
スマートな方法があったら知りたい今日この頃

結局未解決事項

今回は元のデータファイルがjs形式だったので、このような無理矢理な方法が取れたのですが、これが普通のテキストファイルだったりxmlだったりのutf-8以外だったら、ちょっと思いつかないんですよねぇ。誰かへるぷ。

JavaScript関連リンク

サイト

Binbo-Special > 技術情報らしきもの > JavaScript
当サイトです。
OPEN SPACE様
様々な情報がありますが、javascript関連のリファレンスも充実しています。
JQUERY日本語リファレンス
jQueryに関するリファレンスサイト。見やすい!です。

書籍

Prototype & script.aculo.us JavaScriptライブラリによるAjaxアプリケーション開発
読み途中ですが、なかなか面白いです。
jQueryで作る Ajaxアプリケーション
jQueryに興味を持ったら読んでみるのも吉。

2008/10/01

▲一番上へ