2008年12月3日水曜日

squid+php+javascript+IE6.xで発生する怪現象

不思議な現象に出会った。

私が、某所でphpで作っているイントラネットのシステムである。ターゲット・クライアントがIEを想定しているのだが、こんな場合に問題がおきることが分かった。

  1. squid を経由する
  2. フレーム使っている。
  3. メニューの枠からjavascriptで .phpなどのURLを読んで、中央フレームに表示する
  4. IEである

この条件が揃ったとき、とある種類のPHPで作ったものが、中央フレームでレンダリングされず
ダウンロードされてしまう。 orz.

この現象に出くわしたとき、何がなんだか分からなかった。 cookieの関係でもないし、ポップアップブロックは解除されている。イントラネット設定なら、特に問題が無いはずだ。 Firefox内で、IE-TABを利用してIEのレンダリングエンジンを利用した場合や、IE直接でレンダリングした場合でも、必ずコンテンツがダウンロードされている。

この動作は、次のような条件を課することで、回避することが出来た。
  • PHPファイル名を短め(8.3形式)に抑える。
最後の "/" から10文字程度のPHPスクリプトを、直接レンダリングすることは可能だが、
Javascriptで、URL指定し、squidを経由した場合に、どうも上手く、対象URIからファイルの
情報受け取れなくなっている模様。 

もう少し調べてみないと、原因が分からない。 あまりにも発生する条件が狭すぎ、
原因となる場所が多すぎるからだ。 少なくとも squidを経由しなければ、発生しない。
squidを経由すると、なにやら情報が削られてしまうという感じはぬぐえない。

Webキャッシュは止めようかな~という気になる。

0 件のコメント: