| Entrance | Lobby Index |

Entrance小変更

written in 8 Feb.2001


昨年11月にEntranceに若干手を加えてしばらく経ちました。所期の目的どおりページのメンテナンス性は良くなったのですが、混雑する時間帯にスクリプトファイルが読み出せなくてエラーになる事がどうしても起こってしまいます。TJBで使っているスクリプトは基本的にあってもなくても構わない部類のものなのでエラーで実行不能になっても問題ないのですが、やはりその辺の事情に詳しくない人にとってはエラーが出るというのは精神衛生上良くないのは明白です。という事で、今回はこの点をどうにかする事にしました。

本来ならこういう対策はスクリプトファイルを分離したときに同時にやっておくべき事ですが、今ごろになった理由は簡単に言えば「今まで出来なかった」からです。JavaScriptの参考書は2冊ほど持っているのですがどちらにも対策法は書いてありませんでしたし、自分で考えてもいい方法を考えつけていなかったという、要するに私の能力的な問題でした。実のところ、ふと思いついた方法を試してみたところ割とあっさりうまくいったのですが…。うまくいってしまえば馬鹿馬鹿しいほど簡単な事ですが、スクリプト言語の仕様によってはうまくいかないことも十分考えられますし、実行環境であるブラウザによっては動作しない可能性もある訳です。とりあえず我が家の環境では正常動作する事を確認してはいますが、ご覧の環境でエラーが出るなどの情報がありましたらご連絡いただければ幸いです。

技術的な話になりますが、今回取った対策というのは「Entranceのファイルにダミーのスクリプトを書いておく」という、プログラミングをされる方ならあまりの馬鹿馬鹿しさに開いた口がふさがらないであろうという方法です。具体的には、別ファイルになっているメッセージ表示関数と同じ名前で何もしない関数を別ファイルを読み出す前に定義しておいただけです。JavaScriptはインタプリタ言語なのでこんな事が許されるんですねぇ…。JavaScriptは実行時にページの先頭から書かれたスクリプトを順番に実行していく仕様になっているので、同じ名前の関数なり定数なりを見つけると一番最後に定義されたものを使うのですね。これがコンパイル言語だと余程出来の悪いコンパイラでもない限り二重定義としてエラーになるのでしょうから、別ファイルの読み出しに成功したかどうかを検出して失敗していたら処理をスキップといった手順を踏まねばならないでしょうし、検出手段がなかったらそれでおしまい―少なくとも私の頭ではそうなる―でしょう。制約はいろいろあるものの、テキストエディタと対応ブラウザとがあればいいという点でJavaScriptはプログラミング入門には便利な環境ではないかと思います。世の中のフリー・シェアウェアの中にはVisualBasicランタイムを入れさせる割に大したことはしてないソフトも結構ありますから、いっそJavaScriptで書き直してもいいんじゃないかと思えます。JavaScriptだとそのままでWindows以外でも動くというメリットがありますから、もっと利用されてもいいと思います。

ただ、今回の修正に合わせて別ファイルの漢字コードをEntrance本体に合わせてJISコードにしたところ、うちのWindows95環境に入れているIE4、NN4、Windows98SE環境のIE5のいずれでも漢字が化けるという問題が発生してしまいました。かと言って別ファイルを今までのShift-JISにするとWindows2000環境に入れているNetscape6で化けるのですね。恐らくIE4やNN4のユーザーは減少傾向にあり、Netscape6のユーザーは増加傾向にあるでしょうから、今回はとりあえず全体の文字コードの統一という観点からもJISコードにしておきましたが、この問題の解決が今後の課題という事になるでしょう。文字化けした環境では最初のファイルを読み込んだ時点で内部でShift-JISに統一して処理していると考えると合点が行きますが、そうなると別ファイルによる実装を止める以外に対策がないではないですか…。悩ましいところです。


| Entrance | Lobby Index | PageTop |