したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

Lunascape6でFirefox拡張

102名無しさん:2009/11/23(月) 23:45:39
http://forum.mozilla.gr.jp/cbbs.cgi?mode=one&namber=49974&type=49950&space=75&
> ハッシュ値のコンテンション(Bug 290032)が発生した時に、HTTP GETで正常にjpegデータを読み込んだにも関わらず、
>ある条件が起こるとキャッシュ内のjpegデータの長さがゼロの状態になってしまう、というように見えます。
>Bug 321361と似たような、以下のような問題が考えられるということです。

>(i) thum_NNNa.jpgとthum_NNNb.jpgのハッシュ値のコンテンションが発生し、
>(ii) ダウンロード済みのthum_NNNa.jpgのデータをHTTPキャッシュから追い出す時、
>(iii) タイミングによっては、thum_NNNa.jpgの処理が完了する前に追い出される、
>あるいは、必要なthum_NNNb.jpgのデータのほうを消してしまう、
>というようなことが起こり、その時、
>(iv) 折角HTTP GETでダウンロードできているのに、ダウンロードに失敗した状況になってしまう、
>又は、HTTP GETの完了を永久に待ってしまう、
>(v) あるいは、「ダウンロード済みのthum_NNNx.jpgデータ」としての長さがゼロになってしまう。
>(v)の場合、<IMG>としては「未ダウンロード」の状態ではなくて、バックボタンではHTTP GETはでないものと思われます。
>(iv)で、<IMG>としては「未ダウンロード」の状態であれば、バックボタンでHTTP GETがでますから、
>バックボタンの繰り返しによって、いくつかの「長さゼロ」に誤ってセットされたもの以外は、全て表示されると思います。

>ハッシュ値のコンテンションでなく、URLあたり256の制限に引っかかった時の問題かもしれません。
>> https://bugzilla.mozilla.org/show_bug.cgi?id=263590
>> Bug 263590 Disk cache hold only 256 objects (images) from one URL location (directory)
>これだと、半分くらいは常に表示されるがかなりの数が表示されず、
>バックボタンで戻って表示されないものが少なくなった後やリロードで、
>キャッシュにあればHTTP GETがでないはずの<IMG>に対してHTTP GETがでることの説明がつきます。

>URLあたり256の制限
●とりあえず 1024〜32768 ぐらいの制限に広げるのはどうでしょう?

>ある条件が起こるとキャッシュ内のjpegデータの長さがゼロの状態になってしまう
そのプログラムシーケンスを解明するのが重要だと思います。
そして正しい『キャッシュ管理情報』の構築が必要です。    ← 最重要

条件が整わないとキャッシュをクリアできないような
キャッシュプログラムに作り直した方が早いかもしれません。

キャッシュ管理情報に『読取り状態』や『クリア待時間』などを個々に追加して
キャッシュをクリアできない条件があった場合に待時間を更新し
キャッシュクリアを数100ミリ秒後リトライします。
必要なキャッシュクリアは必ず出来るように条件を設定します。
保険としてリトライし続けて60秒?たったら強制的に対象キャッシュをクリア。
設定条件が良ければ強制的な対象キャッシュクリアは起きません。
なお、強制的な対象キャッシュクリアはerror情報に記録します。

設定条件を考えてみてください。
たとえば、読取り途中の画像をクリアしようとした場合に、
読取りを停止または完了していないとクリアさせないようにします。
ポイントは条件が整うまで『遅延キャッシュクリア要求』です。

読取り途中にクリア要求が来たら
⇒読取り停止要求をして、遅延キャッシュクリア要求設定

読取り停止後や完了後にクリア要求が来たら
⇒即キャッシュクリアをして、次に対象キャッシュ管理情報もクリア

>(iii) タイミングによっては、thum_NNNa.jpgの処理が完了する前に追い出される、
>あるいは、必要なthum_NNNb.jpgのデータのほうを消してしまう、
>というようなことが起こり、その時、
>(iv) 折角HTTP GETでダウンロードできているのに、ダウンロードに失敗した状況になってしまう、
>又は、HTTP GETの完了を永久に待ってしまう、
上の仮説はとても重要な糸口かもしれません。
Mozilla系の不具合はIEにまで波及しているかも?


貴重な対象サンプル
http://geinou.s8.x-beat.com/
テストサンプル(JavaScript無しCSS無し画像255個)
http://www.death-note.biz/up/g/6259.htm
テストサンプル(JavaScript無しCSS無し画像256個)
http://www.death-note.biz/up/g/6260.htm
テストサンプル(JavaScript無しCSS無し画像257個)
http://www.death-note.biz/up/g/6261.htm
テストサンプル(JavaScript無しCSS無し画像543個)
http://www.death-note.biz/up/g/6262.htm


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板