ブックマークはどうあるべきか。本当に悩ましい

板やブックマークなどの基礎を固めてから、スレッドを表示したり飾ったりする方向に行きたい*1わけですが、ブックマークの更新って少し悩ましい。


ブックマークに登録されているスレッドの最新情報、レス数を得るためにはどうすればいいか。

  • そのスレッドを読み込む
  • そのスレッドが元々所属する板を読み込む
  • そのスレッドが更新されているかどうかだけをチェックする

まあだいたいこれが選択肢な訳ですが、2ちゃんねるは日本最大を誇るだけあって鯖も大変なわけですね。攻撃もされるし。そんなわけだから、あまり一気に大量の情報をリクエストすると鯖によろしくない。ていうか規制の対象にすらなります。よって2chブラウザはそれなりに気を使う必要があります。


例えば100個のブックマークされたスレッドがあったときに、スレッド全部に一度に更新をお願いするとこれは鯖いじめになるわけです。そこで例えばBathyScapheのSPいくつだったかは、更新されているかどうかだけをチェックする方法をとりました。HTTPのHEADメソッドを使った方法です。
ただしこれではスレッドの数だけやっぱりリクエストが必要です。

そこでまあ、普通はこうすると思うんですが、スレッドの所属している板を更新して、ブックマークにもその情報を反映させます。ただし、以下のような方法で鯖負荷軽減を図ります。

  • 複数のスレッドが同じ板に所属しているときは、板を一回だけ更新
  • 板と板との更新の間にウェイトを入れる
  • 板やブックマークの更新間隔を制限する

Thousandでは板のあいだに1秒のインターバルを置いてみました。
リクエスト→情報ダウンロード→1秒→リクエスト…って流れです。
でさらに、同じ板の更新は10秒以内には出来ないようにしようと思います。つまり、Thousandの画面上である板を更新したとして、次にその板のスレッドも含まれるブックマークを更新したときに、10秒経っていなければその板については更新しないとか、そういう措置です。
板によって鯖の能力も違うだろうし、悩ましいところです。SETTING.TXTも読もうか。

このブックマーク更新は順調に動いてます。
もちろんThousandは複数のブックマークを持てるために、「全てのブックマークを更新」という機能もあります。

*1:暫定的な表示はあるけど