分かってる人には「何を今更」って事だろうが、分かってない人も多そうだから、
あぼーんがあった場合なんでそうなるのか解説しておこうか。
普通dat直読みの専用ブラウザ(ほとんどそう)は、ローカルに保持したdatのサイズからリジュームして差分を取得する。
httpのリクエストヘッダにRange: datのサイズ-って付けてリクエストすると、
その指定したサイズから鯖はdatの中身を送ってくれるわけだ。
これがリジュームするって事ね。
通常はこれで何の問題もないのだが、鯖側であぼーんや透明あぼーんがあると、
当然鯖側datのサイズが代わり、ローカルに保持したdatのサイズをRangeヘッダに付けてリクエストすると、
予期せぬレスの途中から送られてしまう事になる。
それを検出すると(検出の方法はブラウザによって違うだろうが、たいていは1byteロールバックして改行コードじゃない場合だろう)、
いわゆる「ログ詰まり」になるわけだ。
こうなると、どこから新規レスが始まっているか、ローカル側からは判断できないため、
Jane以外の多くのブラウザは削除後に再取得する事になる(自動にせよ、手動にせよ)。
Janeなんかはそこら辺のあぼーん検出を怠っているのか、
ログ詰まりを出したくないのかはわからんが、変な位置からdatが送られてきても
無理矢理表示したりする(変な位置からdatを読むからこそ「ここ壊れてます」になってしまう)。
ついでに、場合によってはレス番がずれる。
ログ詰まりが起きようがなにしようが無理矢理表示を試みるJane方式がいいのか、
ログ詰まりだったら再取得するしかない、他のブラウザ方式がいいのか、
どっちがいいかはしらん。
それは使う側が判断しる。
> ログ詰まりが起きようがなにしようが無理矢理表示を試みるJane方式がいいのか、
> ログ詰まりだったら再取得するしかない、他のブラウザ方式がいいのか、
どう考えても自動で再取得してズレを直してくれる方がいい気がする・・・
人によって違うのかなー、そこらへんは。
876 :
862:03/09/27 23:57 ID:z1kY/Lmz
>>874さん、詳しい説明ありがとうございます。
Janeが壊してるわけじゃなく、仕様の違いでそうなってたのか。
Jane関係者の皆さん失礼しました。
Janeの場合いったんログを削除して再取得せねばならんが
お気に入りとかもはずれてしまうからスレのURLをコピーしてから削除しないと
探さなきゃならないよ
削除を検出するときとしないときがないか?<OpenJane
簡単にJaneの「ここ壊れてます」やレス番ズレの起こるケース確認する方法があるよ。
まず、Janeで適当なスレを開く、読み込みが終わったらすぐにタブを閉じる。
Janeのログフォルダを開き、たった今読み込んだスレのdatファイルをテキストエディタで開く。
中から適当に1文字消し、上書き保存する。
(ローカルdatのサイズを変更し、鯖側あぼーんでdatの整合性がとれなくなるケースを再現する)
その後ふたたびJaneでそのスレを開く。
新しいレスがついていなければ、「誰も書いてないよ」になってしまうので、自分ででもいいからなんか書き込んで新規レスをつける。
で、読み込むと(差分取得すると)、「ここ壊れてます」と、レス番ズレが再現される。
ちなみに他のブラウザで同じ事をすると(かちゅとかLive2chとか)、
ログ詰まりしたよって出て、再取得する事になる。
ただしかちゅの場合はdatのサイズからリジュームしているわけではないので、
idxに保存されたリードポイントから1を引く事になる。datを改変しても意味がない。かちゅはdatが独自形式だし。
Janeであぼーんがあっても「ここ壊れてます」もレス番ズレも出ないケースを再現する事もできる。
さっきはdatから1文字だけ消してサイズを小さくしたが、
今度は逆にどっかに一文字入力して、サイズを大きくしてみる。
そうすると、「ここ壊れてます」もレス番ズレも起こらず、削除検出も起こらずに
正常に差分取得が完了する。
ちなみに他のブラウザで同じ事をすると、これもログ詰まりで再取得する事になる。
1文字消した場合と同じ。
Janeが削除検出するときってのは、おそらくレスポンスが
「HTTP/1.1 416 Requested Range Not Satisfiable」だったとき。
これは鯖側で大量のあぼーんがあって、リジュームしようとしたサイズ分に
鯖側のdatサイズが満たない時に出るレスポンスね。
俺は削除検出して再取得方式のほうがレス番ズレなんて事が起こらないJane以外のブラウザ方式のほうが好きだが、
なんかJaneのレス番がズレようとも、ログ詰まりが起こらないってのに魅力を感じている人も多いようなので、
どっちがいいとか、どっちがおかしいとかはおのおのの判断で。