Ajax初心者入門講座 に関する質問
【質問】
ステップ13の非同期通信のサンプルなのですが、Internet Explorer だと「処理中です」の画面で止まったままになってしまいます。
FireFox であれば正常に動作するのですが、何が原因と考えられるでしょうか?
【回答】
ステップ13のプログラムは sample003 ですね。私のほうで IE6.0 で確認してみたところ、正常に動きました。そこで以下の方法を試してください。
(1)Internet Explorer で以下のURLを開き、試してください。
http://ws.bzen.net/pgtop/sample003/pref.html
上記のプログラムは sample003 をウェブにアップロードしただけですから、もしこのURLで動くなら、ブラウザの問題ではないです。
(2)各ファイルの保存時の文字コードを、もう一度確認してください。
*多くの場合文字コードで解決します。
(3)どこでプログラムが動かなくなるか特定してください。
FireFox では Firebug を使えば、簡単に問題の箇所を特定できますが、Internet Explorer の場合、動作確認するにはコツがあります。プログラムに以下の1文を加えます。
alert("OK");
例
var response = data.responseXML.getElementsByTagName('Response');
alert("OK");
var item = response[0].getElementsByTagName('Item');
少しずつアラートを書く場所を変えてみてください。アラートが表示されなくなった直前のプログラムに問題がある可能性が高いです。
*実行する度にブラウザのキャッシュはクリアするようにしてください。プログラムを変更したつもりでも、キャッシュを見ていることがあります。
ツール → インターネットオプション → ファイルの削除
アラートで表示する文字列を毎回変えたほうが確実です。するとキャッシュを見ている場合は、すぐに気付きます。
この方法で問題箇所を大体特定することができます。