インタネットイクスプローラによる表示が遅くなる原因と対処法

このQ&Aのポイント
  • インターネットエクスプローラによる表示が遅くなる原因として考えられる点は、ブラウザのバージョン(特にIE6)やサーバーの過負荷状態が挙げられます。
  • 原因究明のために行うべき処置としては、まずブラウザのバージョンを最新のものにアップデートすることが推奨されます。また、サーバーの負荷状態を監視し、必要に応じて対策を行うことも重要です。
  • また、b.php、x.php、y.phpの処理に関しては、変数の競合を回避するために関数を定義し、変数をローカル変数として扱うことが推奨されます。
回答を見る
  • ベストアンサー

インタネットイクスプローラによる表示が極端に遅くなります

以下のような構造のa.htmlの表示が度々大幅に遅れ、原因が分からず困っております。 a.html  *  ***** b.php  *  ***** x.php  *  ***** y.php 〔a.html〕 (1) b.phpによって生成される静的なリンクをインラインフレームとして含みます。 (2) 二つのx.php、y.phpをssiにより含みます。   <!--#exec cgi="x.php" -->   <!--#exec cgi="y.php" --> 〔x.php、y.php〕  x.php(y.php)は、それぞれ以下のような処理を行います。 (1) 予め個別に割り付けられたファイルX.txt(Y.txt)の内容を   readfile関数により読み出してssiの対象とします。 (2) その際には、後述するようにb.phpが行うファイルX.txt(Y.txt)の更新処理   との排他制御をflock関数により行います。 〔b.php〕  b.phpは、以下のような処理を行います。 (1) 上記インラインフレーム内に表示される静的なリンクを生成します。 (2) 次にa.htmlにアクセスされたときのために、ファイルX.txt、Y.txtの双方の内容を   上記ssiにより表示されるべき情報に更新します。 (3) その際には、上記ファイルX.txt、Y.txtへのアクセスに関して、   x.php、y.phpとの排他制御をflock関数により行います。 〔a.htmlの表示が遅れる症状〕 (1) 表示が遅れるのは、ブラウザIE(ver 6でのみ確認)のみで発生します。   遅れる時間は、30秒ないし3分30秒程度(一定ではありません。) (2) ただし、表示が遅れる場合であっても、   a.htmlの先頭にあるヘッダー(複数の静的なリンク)のみは速やかに表示されます。   しかしブラウザ画面上でその下に表示されるべき情報は、既述の通りに大幅に遅れて表示されます。   なお、遅れて表示される情報には、特に不正常な点は見受けられません。 (3) なお、他のブラウザ(firefox.safari.netscape,opera…何れも最新ヴァージョン)の場合には、   ブラウザIEでトライした場合に比べて頻度は少ないものの、   上記b.phpが生成する静的なリンクの表示が10秒~30秒程度遅れる場合があります。   (サーバーの過負荷状態に起因する可能性もあり?)   また、ブラウザIE以外のブラウザでは、   b.phpが生成する静的なリンクの表示が遅れる場合であっても、   その静的なリンク以外の全ての情報は、速やかに表示されます。  以上、大変長くなりましたが、以下の点をご教示下さるようにお願い致します。 ・ 原因として考えられる点 ・ 原因究明のために行うべき処置(ブラウザIEに関するより望ましい設定を含む)  追伸  b.php、x.php、y.phpに含まれる変数については、  これらのphp本体の全体をそれぞれfunctionとして定義し、  このようにして定義されたfunctionを冒頭部で呼び出し、  変数の全てをローカル変数と定義することによって、  変数の競合による誤処理を回避しています。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ヘッダが表示されるのであれば、javascriptや画像などの外部読み込みファイルの読み込みが遅くなってるんじゃないでしょうか? SSIはHTMLを生成してから書き出すと思うので、ブラウザ依存にはならないんじゃないかと思います。 表示が止まっている状態でHTMLのソースを表示して、どの部分で止まっているのか見てみると良いのではないでしょうか。

tfj3116
質問者

お礼

mizuno3様、ありがとうございます。 教えて頂いたは、 問題解決のための再考時に大きな「気付き」となりました。 おかげさまで、b-phpとx.php、y.phpとの間における排他制御を 徹底的に「粗」とする(詳細は省略させて頂きます。)ことで、 php上での関連性は当初より大幅に「密」となったものの、 問題は一応解決できました。 ここで、質問を締め切らせて頂きますが、 今後とも、どうかよろしくお願い致します。

tfj3116
質問者

補足

早速教えて頂き、ありがとうございます。 質問の投稿後に行った調査の結果は、以下の通りです。 (1) javascriptや画像などの外部読み込みファイルの読み込みが遅くなっている… →その通りです。表示が止まっている状態で確認したhtmlソースには、 y.phpの結果としてssiによりサーバから転送される部分が含まれていません。 (2) SSIはHTMLを生成してから書き出すと思うので、ブラウザ依存にはならないんじゃないかと… →上記結果によれば、b-phpとx.php、y.phpとの排他制御の結果として表示が遅れていると思われます。 (3) この排他制御の関係を可能な範囲で実験的に「粗」としてみたところ、表示が遅れる確率は大幅に少なくなりました。  以前はブラウザの更新ボタンのクリックを2~5回行うたびに発生していましたが、この値が80~90程度となりました。 (4) さらに、確認すると、ブラウザIEに限って、更新ボタンのクリック回数が「1」であるにもかかわらず、サーバには、2回の更新要求が送信されていることを確認しました。   ブラウザ依存となる主要な原因は、これであるものと思われます。  そこで、さらに教えて頂きたいのですが、 (1) 上記「2回の更新要求」が送信される現象は、ブラウザIEのバグなのでしょうか。また、ブラウザの設定で回避され得るものなのでしょうか。   ネットであれこれ調べたのですが、該当する情報を得ることはできませんでした。 (2) IE以外のブラウザで更新ボタンを続けざまにクリックして等価な負荷をサーバに与えることにより、「IEで生じている表示の遅れを再現しよう」と試みましたが、無理でした。   サーバ側は、上記「2回の更新要求」を単なる負荷の増加のみと認識せず、今回の表示の大幅な遅れの原因とする振る舞いをしている可能性がありますでしょうか。   また、このような場合における対処の方法はありますでしょうか。  以上、お手数ですが、さらなる原因の切り分けの方法がありましたら、是非併せて教えて頂きたく、よろしくお願い致します。

関連するQ&A

  • 直線の媒介変数表示

    直線を媒介変数表示するときのtの表すものがわからないので質問します。 点A(x_1,y_1)を通り傾きb/aの直線の媒介変数表示が、x=x_1+at,y=y_1+bt・・・(1) 点A(x_1,y_1)を通り方向角αの直線の媒介変数表示が、x=x_1+tcosα,y=y_1+tsinα・・・(2) と書かれている下に、tはAと直線上の点P(x,y)との距離(向きを考える)を表す変数と書かれているのですが、この一文が(1)にも(2)にも当てはまるか、(2)だけに当てはまるかがわかりません、(2)ではAPの距離が √{(x-x_1)^2+(y-y_1)^2}=√{(tcosα)^2+(tsinα)^2}=√t^2=|t|となるので、一文に当てはまると考えました。 (1)では、√{(x-x_1)^2+(y-y_1)^2}=√{(at)^2+(bt)^2}=√(a^2+b^2)|t|ですが、傾きb/a=kを、a^2+b^2=1を満たすように約分することもできるので、疑問がわいてしまいました。b/a=kとa^2+b^2=1を連立させると、 (k^2+1)a^2-1=0よりa=±√(k^2+1)/(k^2+1),b=k*{±√(k^2+1)/(k^2+1)}これは、b/a=kとa^2+b^2={(k^2+1)+k^2*(k^2+1)}/(k^2+1)^2=1をみたすので、√(a^2+b^2)|t|も|t|になったりするのかなと思いました。 どなたかb/aを約分して(傾きの値kは変えない)いいのかと、(1)においても、tはAと直線上の点P(x,y)との距離(向きを考える)を表す変数と言えるのかを教えてくださいお願いします。

  • sedの置換文字に変数を使用したいのですが・・・

    あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。 例: X="a" Y="b" echo test.txt | sed 's/${X}/${Y/g}' >test.txt sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

  • PHPで同ページ内の外部ファイル表示切替の方法。

    初めて質問します。 PHPを利用し、同ページ内で、外部ファイルの表示切り替えをしたいのですが、PHPを覚えたばかりでうまくできません。 下記のような形でページ内で切り替え表示させるには、どうしたらいいのでしょうか。 ------- メニュー:<a href="a.txt">A</a> <a href="b.txt">B</a> <a href="c.txt">C</a> <?php require_once("./外部ファイル.txt"); ?> ----- 外部ファイル.txt の部分を、メニューのリンクに合わせて、a.txt、b.txt、c.txtのように、同ページ内で切り替え表示がしたいです。 リンクを<a href="index.php?~">と言う形にし、<?php require_once("./外部ファイル.txt"); ?>の中にif関数を入れればいいのではないか… と思っているのですが、どの関数をどのように組み合わせればいいのかが、お恥ずかしながらわかりません。 どなたか、教えていただけるとうれしいです。よろしくお願いします。

    • 締切済み
    • PHP
  • 媒介変数表示の問題

    楕円(x^2/a^2)+(y^2/b^2)=1で 媒介変数表示 x=a*cost y=b*sint を用いてdy/dx=-(b^2*x)/(a^2*y) が成り立つことを証明したいのですが、 左辺を計算しても、yは出てこないのでは? つまり、求めれないんです。お願いします。

  • 楕円の媒介変数表示

    楕円 x^2/a^2+y^2/b^2=1 の媒介変数表示は、 x=a/cosθ y=b/sinθ x=a/sinθ y=b/cosθ どちらでもよいのでしょうか? それともxはcosと関係が深いので、xとcosの組のほうがよいのでしょうか? 宜しくお願いします

  • FireFoxにてPHPで生成したをXML表示するには?

    PHPにてXML文書を生成して、それをXMLデータを読み取るFlashにデータを渡す処理を作成しました。 そこで、作成されるXML文書を確認するため、 IE7にて、http://hoge.ne.jp/xml.phpと入力してXMLのツリー上になっていることを確認しました。 ですが、ブラウザをFireFoxに切り替えたら文字化けされた(?)文書が表示されるのみです。 ためしに生成されたソースをそのまま、サーバに上げたらツリーが表示されました。 FireFoxでもIEと同様にXMLをツリー形式で見るにはどのようにしたらいいのでしょうか? 出来るなら、ブラウザ関係なく見れるのが好ましいですが、 最低限FireFoxだけでもいいので表示したいと思っています。 わかる方がおられたらご教示ください。 以上、よろしくお願いします。

  • Netscape7でtxtファイルに記述されているHTML文をiframeでHTMLとして表示するにはどうしたらよいのでしょうか?

    初心者です。わかる方がいらっしゃればぜひ教えてください。 現在、サイトを構築しているのですが、 別のサイトにおいてある***.txtというファイルを iframeで取り込んでいます。 ***.txtの中身は、HTMLのタグ(<li>や<a href="">など)が記述されています。もともと、そのtxtファイルは別サイトでSSIで取り込まれているものなので、<HTML>タグや<BODY>タグなどはありません。 IEで私のサイトを閲覧すると、うまい具合にHTML文としてリンクなどが表示されるのですが、Netscape7やfirefox、Mozillaで閲覧をすると、HTMLのソースがそのまま表示されてしまいます。 試しにtxtファイルをダウンロードして、拡張子をhtmに変更し、iframeのsrc="XXX"の記述を、そのHTMLファイルのローカルパスにしてみたところ、Netscape7でもうまくHTMLとして認識されたようで、リンクなどが表示されました。 これはやはりブラウザの仕様なのでしょうか?iframeに何かの記述を追加すれば解決するのでしょうか? 必ずしもiframeにこだわっているわけではありませんので、何か別の解決方法があればそれでも結構です。 IEでもNetscape7などのブラウザでも、うまくHTMLとして表示されれば手段は問いません。 ちなみに、別サイトのtxtの拡張子は変更できません。 # その別サイトの管理者には、そのtxtファイルを取り込むことについて了解をいただいています。

    • ベストアンサー
    • HTML
  • 簡単なアルゴリズムの添削をお願いします。

    こんにちは。 自分はプログラミングを学ぶ社会人です。研修を受けておりまして、以下のような問題を出されたのですが、このような考えは正しいでしょうか?それとも手順を変えたほうがよろしいでしょうか? <問題> 変数xには29、変数yには26が入っており、このx、yと、さらに空の変数a(20以上の数値は格納できない)の3つだけを使って、xとyの数値を入れ替える処理を行う流れ図を完成させよ。 開始 | 29÷10→a | 26→x | 10a→y | xとyを表示 | 終了 ※「|」は、流れ図で下に向かう処理を表しています。 どうぞよろしくお願い致します。

  • 代数学 方程式に任意の数字を入れて残りの変数を出す

    y= a・x + b (y:定数) という式があったとして、右辺にある任意の2変数に文字を入れて残りの変数を決定したいと思います。 yと一致しなかったら計算打ち切りという処理にしたいのですが、問題は式の本数と変数の個数が1000個以上あるのです。(できれば式と変数の数を任意とする関数を書きたい) 上記の例なら a = (y-b)/x x = (y-b)/a b = y - ax と全部場合分けすることもできなくはないですが、変数が1000個となると全部人間が場合分けするのは非現実的です。 なにか良いアルゴリズムないでしょうか?

  • 媒介変数表示への変換のしかた。

    媒介変数表示への変換のしかたを教えていただきたいです。 具体的な問題で、 √x+√y=√a のxとyを媒介変数表示したいです。解答を見ると、直接 x=acosθ^4 y=asinθ^4 としているのですが、その仕方が分りません。 よろしくお願いします。