pbtweet使ってると遅くなる
というエントリーを書いた。
http://pbtweet.blogspot.com/2009/09/slowness-with-using-pbtweet.html
はい、遅くなります。そりゃもうtwitterのオリジナルスクリプトもインターフェイスも数百tweets並ぶことしか考えてないんだから印刷すると10mに達するような自動更新なんて考えているわけがない。遅くなるポイントは2つ。
- 長いタイムラインができた後のタブ切り替え
- テキスト入力
1については1.5開発版の0070で対処した。どういう処理をしてるのか特に分析はしてないけどtwitterのオリジナルスクリプトはタブ切り替えるときにtweetをひとつひとつ触ってるんで、先手を打ってtimelineを丸ごと削除して空のtimelineオブジェクトを突っ込むことにした。
2も原因は同じなんだけど対処はちょっと面倒なことになりそう。テキスト入力を監視しているtwitterのオリジナルスクリプトはjQueryなんだが、同じオブジェクトでtweetも監視してるのか、tweetが増えるといきなり処理が重くなる。これを回避するにはオリジナルスクリプトがイベントをdispatchしているフォームを隠して代替インターフェイスを用意してやりゃいいんだけど、オリジナルスクリプトで提供してる機能を削る訳にも行かないから工数多そうなんだよね。というわけで、これは1.6以降。
自由に実装できる自前の入力フォームはもともと予定に入ってたんだけど、twitterがAjax化されてから重くなったから予定を巻き上げて作る必要が出てきてしまった。