■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

2ちゃん専用ブラウザ「かちゅ〜しゃ」Part22

240 :名無し~3.EXE :01/10/03 09:08
>>228 DLL作者様 (提案です)
v16から既得スレはdat読みになってますが、レスが多い場合は接続が長引き、CPU負荷も転送量も多い
状態になってしまうと思うんです。(特に、遅い回線のクライアントが読んだ場合)
そこで、まずHEADメソッドでdatのバイト数を読み込み、未読分のバイト数を計算してread.cgi経由にするのかdatを
Range付きで読むのか決めればいいかと思います。また、未読バイト数が既得バイト数に比べてかなり多い場合
(例・既得が20KB未読が100KB)ならdatをRange無しでmod_gzipが効くようにして取得してやるのがベストだと思い
ます。(上記例の場合、mod_gzipによって転送量は40KB以下になります。ほとんどの場合。)

これだと、2度接続が行ってかえって負荷が上がると言われそうですが、Keep-aliveで接続してやれば1接続で
HEADメソッドたたいてその結果でGETメソッドたたく事が出来ます。ただし、プロキシによってはKeep-aliveを
うまく処理出来ないものがあるようなので、プロキシ経由の場合はKeep-aliveを外した方がいいかも知れません。
(参考文献: http://way.direct.ne.jp/HTTP/connections.html)

ここまでを踏まえた実装例 (未読:未読バイト数   既得:既得バイト数)
if (プロキシ利用){
 datをRange付きで読み込み; //mod_gzipが効かない
}else if(未読 < 20KB){
 datをRange付きで読み込み; //mod_gzipが効かない
}else if(未読 > 既得*4){   //ホントは*3にしたい気分だが。(w
datをRange無しで読み込み、既得分は切り捨てる; //mod_gzipで圧縮が効く
}else{
read.cgiのlawモードで読み込み; //mod_gzipまたはread.cgiでの圧縮が効く
}

実装は面倒ですが、やってみる価値はあるかもしれません。

211KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30