さよならScriptish。 (2)
Greasemonkeyで動かすぶんには問題がないので、結局、スクリプトの開発はこっちで行うことにしたのだが、Greasemonkeyはエラーを吐いてくれないのでデバッグが面倒くさい。もうとっくに超えてるけど、スクリプトが1000行超えたあたりでコードメンテする気力が失せるので困るわぁ。
そういう意味では一番開発しやすいのはTampermonkeyかもだけど、ウチの環境だとコードミス出す都度、ChromiumがフリーズしてOSごと数分、操作不能なるので使いたくない。というか、Firefox + Greasemonkeyで動かす前提でスクリプトを弄った結果、最終的にTampermonkeyはスクリプトの読み込みすらしてくれなくなった…。
もうひとつ気になってることがあるのだけど、動的サイトによくある、URLパラメータで処理を振り分けているようなページに対する接続で、パラメータを変更して接続しなおすと、スクリプトも再実行されるけれど、スクリプトが非同期処理を含んでいると、再接続時に以前の処理がそのまま残っていて不具合が生じることがある。
window.onbeforeunloadをトリガして、非同期メソッドを内部でキャンセルしてやることで不具合そのものは回避できたけど、これって遷移後も前回実行時のインスタンスが開放されずにずっと残ってるってことなんだろか?
タスクマネージャー眺める限りは、メモリ使用量のリニアな増加は見られず、適宜開放も行われているようで、メモリリークのようなことは起きてないように思うけど気になる。場合によっては詰むのでな。