■スレッドリストへ戻る■ 全部 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