― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 9 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2015年10月14日(水) 12:14 
オフライン

登録日時: 2015年10月14日(水) 11:40
記事: 5
お住まい: 東京都世田谷区
初投稿です。よろしくお願いします。
Firefox 上で動かしたい Web アプリケーションを作成していたときに、とても不思議な現象に直面しました。
解決できておらず苦慮しているので、解決のヒントや再現報告などいただければ幸いです。

現象:
 https://nty_portal.synquery.com/ の画像が1度は表示されるが、更新(リロードやスーパーリロード)すると表示されない。
 しかし、一度「前のページに戻るボタン(←)」で一つ前のページに戻って「次のページに進むボタン(→)」で表示すると表示される。
 また、中身は全く同じで、呼び出し URL が違うだけのアプリケーション(https://nty_portal.synquery.com/wawPjAO7)
 では問題なく表示される。
(再現させるには URL にアクセスし、アプリケーションに demo/demo でログインください。)

実行環境:
 Macbook Air (13-inch, Early 2015)
 OSX El Captain (10.11)
 Firefox 41.0.1
 アドオンなどの影響はリフレッシュして除去しているつもりです。

<https://nty_portal.synquery.com/ での挙動>
(1回目:正常表示される)
(要求)
Host: nty_portal.synquery.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://nty_portal.synquery.com/
Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1
Connection: keep-alive
(応答)
Age: 5202
Cache-Control: max-age=31536000,public
Connection: keep-alive
Content-Type: image/png
Date: Wed, 14 Oct 2015 03:02:32 GMT
Expires: Thu, 13 Oct 2016 03:02:32 GMT
Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT
Transfer-Encoding: chunked
x-powered-by: foonyah
(2回目:Command+Rリロード:表示されない)
画像リクエストが発生せず
(3回目:前のページに戻ってから次のページに進む:正常表示)
(要求)
Host: nty_portal.synquery.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://nty_portal.synquery.com/
Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1
Connection: keep-alive
(応答)
Age: 5469
Cache-Control: max-age=31536000,public
Connection: keep-alive
Content-Type: image/png
Date: Wed, 14 Oct 2015 03:07:00 GMT
Expires: Thu, 13 Oct 2016 03:07:00 GMT
Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT
Transfer-Encoding: chunked
x-powered-by: foonyah

<https://nty_portal.synquery.com/wawPjAO7 での挙動>
(1回目:正常表示される)
(要求)
Host: nty_portal.synquery.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://nty_portal.synquery.com/wawPjAO7
Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1
Connection: keep-alive
(応答)
Age: 5541
Cache-Control: max-age=31536000,public
Connection: keep-alive
Content-Type: image/png
Date: Wed, 14 Oct 2015 03:08:12 GMT
Expires: Thu, 13 Oct 2016 03:08:12 GMT
Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT
Transfer-Encoding: chunked
x-powered-by: foonyah

(2回目:Command+Rリロード:正常表示される)
(要求)
Host: nty_portal.synquery.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: ja,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://nty_portal.synquery.com/wawPjAO7
Cookie: _ga=GA1.2.1015780904.1443098317; _gat=1
Connection: keep-alive
Cache-Control: max-age=0
(応答)
Age: 5657
Cache-Control: max-age=31536000,public
Connection: keep-alive
Content-Type: image/png
Date: Wed, 14 Oct 2015 03:10:07 GMT
Expires: Thu, 13 Oct 2016 03:10:07 GMT
Last-Modified: Wed, 14 Oct 2015 01:35:50 GMT
Transfer-Encoding: chunked
x-powered-by: foonyah

なお、プライベートウィンドウ上では https://nty_portal.synquery.com/ でも正しく表示されることを確認しております。


添付ファイル:
コメント: 表示されなくなったときの画像の状態
スクリーンショット 2015-10-14 12.14.04.png
スクリーンショット 2015-10-14 12.14.04.png [ 12.54 KiB | 表示数: 6640 回 ]

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0
通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月15日(木) 15:40 
オフライン

登録日時: 2015年10月14日(水) 11:40
記事: 5
お住まい: 東京都世田谷区
ソースコードからデバッグを始めました。
どのあたりを見ると原因がわかりそうか、検討がつく方は是非ご教示ください。

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月16日(金) 12:43 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
https://nty_portal.synquery.com/

https: と、/ で終了(URI的にはディレクトリーの指定)でファイル名なし、が重要そうですね。

https://nty_portal.synquery.com だとどうなりますか?

https:だから、データをキャッシュしなくて、リロードだと、/で終わっていてファイル名部分がないので、キャッシュに無かった時にHTTP GETをだしに行かない、という感じですね。
Back/Forwardだと、BacAndForwardキャッシュのWebページのデータを使って表示するんですが、動作としてはリンククリックなどと同じページの移動だから、キャッシュに無ければ普通にHTTP GETを出しに行くのでしょう。

http://www.abc.net だと、Apacheなどの設定で index.htmlなどを直接返してくると思います。
http://www.abc.net/xyz/ でリクエストをだしたとき、xyzがディレクトリーではなくてファイルの時は、ディレクトリーではなくてファイルだよ、と言って、/で終わらないものでリクエストさせ直す、というような形になるのが普通だったと思います。

http://www.abc.nethttp://www.abc.net/xyz というファイル、
http://www.abc.net/http://www.abc.net/xyz/ というディレクトリー、
といったことが影響して、https: でキャッシュに無い時に、リロードで期待通りの動きになってくれない、ということに思えます。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月16日(金) 13:32 
オフライン

登録日時: 2015年10月14日(水) 11:40
記事: 5
お住まい: 東京都世田谷区
> WADA さん
コメントありがとうございます。
https://nty_portal.synquery.com/ は FF の URLバー上 https://nty_portal.synquery.com
と表示されて、pathname も同じ "/" で、挙動の変化もありません。ブラウザ上同じ扱いなのかなと思います。

Back Forward Cache
が利用されている、という点は確かにそのような気がします。

> みなさま
firefox がキャッシュの有無を判定する際、
サイト内でのリダイレクトの検証を行っていたりすることがあるのでしょうか。

環境として AWS の ElasticIP を使い出したあたりから調子がおかしい気がしているので、少し勘ぐっています。
現在、ソースコードの imgLoader あたりを読んでおり、imgCacheValidator の OnRedirectVerifyCallback あたりを探っています。

もしヒントになりそうなことがあれば、引き続きお願いいたします。

https://nty_portal.synquery.com/
(demo/demo でログインして現象を確認できます)

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月16日(金) 17:23 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
外から見た症状は、ある<img src="/...">が、
https://nty_portal.synquery.com/wawPjAO7 でロードしたHTMLならリロードでも表示されるが、
https://nty_portal.synquery.com/ でロードしたHTMLだと、リロードで表示されない、
ですが、
実際には、
(a) https://nty_portal.synquery.com/wawPjAO7 でロードしたHTML/JSならリロードでも意図どおりに動くが、
(b) https://nty_portal.synquery.com/ でロードしたHTML/JSだと、リロードでは意図どおりに動かない、
というような気が...
(a) ではbaseURI=https://nty_portal.synquery.com/wawPjAO7だが、
(b) ではbaseURI=https://nty_portal.synquery.com、とか、
があって、wawPjAO7の下であることを前提になっている部分があって、
ロードならば、完全にクリーンな状態でDOMが作られてJSが実行されるからいいが、
リロードだとそうは問屋が卸してくれない。
リロードでは、フォームの中身は維持するとか、ページの表示位置を維持するとかがありますから、DOMの要素にはリロード前の状態が残っているわけで、
また、windowコンテキストも、リロードで同じページだから、ゼロリセットして作り直しではなかったはずで、完全にクリアーされた状態を仮定しているコードだと、少し動きがおかしくなることがあり得ます。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月17日(土) 19:42 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
> https://nty_portal.synquery.com/
> (demo/demo でログインして現象を確認できます)

Google ChromeとSeaMonkey(2.33.1)でアクセスしてみたんですが、問題を見ることができません。
Seamonkeyで、オフラインストレージの書き込みの許可を求めてきたんですけど、これが関係?

SeaMonkeyでのリロードだと、最初の画像から件の画像に行く時に、間延びした感じがありました。
リロードだと、ある機能が想定外に早く動いてしまい、<img>にURLをセットした後にイメージのロードに飛ばない?


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月18日(日) 05:00 
オフライン

登録日時: 2015年10月14日(水) 11:40
記事: 5
お住まい: 東京都世田谷区
解決しました。
https://nty_portal.synquery.com/ のアクセスにて cache.manifest がエラーを起こしていたことが原因のようです。
img タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、というところでしょうか。
いろいろとご指南ありがとうございました。

> WADAさん
ご確認ありがとうございました。ご指摘のオフラインストレージが原因でした。
いろいろ試行していたタイミングだったので、ちょうど治っていたタイミングに見ていただいたのかもしれません。

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月18日(日) 18:23 
オフライン

登録日時: 2013年12月26日(木) 09:33
記事: 686
お住まい: 太陽系、地球、日本、ふてニャン県
ystskm さんが書きました:
解決しました。
https://nty_portal.synquery.com/ のアクセスにて cache.manifest がエラーを起こしていたことが原因のようです。
img タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、というところでしょうか。
いろいろとご指南ありがとうございました。

原因の推測は大ハズレだったですけど、スクリプトで色々やっている間に想定外のエラー、という部分だけは、当たっていたみたいですね。

ystskm さんが書きました:
> WADAさん
ご確認ありがとうございました。ご指摘のオフラインストレージが原因でした。
いろいろ試行していたタイミングだったので、ちょうど治っていたタイミングに見ていただいたのかもしれません。

オフラインストレージは、たまたま、SeaMonkeyでもちょっと見てみるか、と、日常使っているSeaMonkeyでも試したら、メッセージがでただけでして。
日常使っているSeaMonkeyでは、ちょっと怖そうなサイトには行かず、画像を見る程度(^^)
Firefoxなら、いつでも新規プロファイルにして遊べるから、ちょっと怖そうなサイトでも平気なんですけどね。

まともな回答を得られなくても、誰かにちょっと話して見るだけで、いろいろと整理できたり、少し発想を変えて見てみるとかできて、うまいこと自分の力だけで原因を見つけたり解決策を見つけられる、って、結構あるんですよね。
ちょっと興味を持っただけの他人だと、リンクが書いてあるこどだし怖いサイトかもしれないけどGoogle ChromeとかSeaMonkeyでちょっと遊んでみるか、とかもやるので、それが功を奏したのかな?

何はともあれ、解決して良かったですね。
でも、cache.manifest がエラーを起こしていて、それでimg タグの loading process でエラーが起きて、画像取得ロジックまで進んでいなかった、
なんて、普通なら迷宮入りの案件...(^^)


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2015年10月21日(水) 07:45 
オフライン

登録日時: 2015年10月14日(水) 11:40
記事: 5
お住まい: 東京都世田谷区
> WADA さん
そうですね、自分が話したことと、いただいた返信と、ソースコードを追いながらひとつずつ要因を探っていくと、思いのほかスムーズに答えに行き着くことができました。
実際に画面を確認していただき、ありがとうございました。

今また今度は webkit の svg レンダリングに頭を悩ませていますが笑
本件は無事、解決です。ありがとうございました。

_________________
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:41.0) Gecko/20100101 Firefox/41.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 9 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[167人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean