Safari の JavaScript バグと格闘
areamap を load して、click した時の動作を bind で付加したやつが、手元の Safari で全く正常動作せず、一日中スクリプトの該当箇所をいぢくっていたのだが、ナニをどうやってもダメで、ふと、そばにある PowerBook (Safari 3)でチェックしたらなんの問題も無く、作業マシンの MacBook でも Safari 以外ではどれもなんともなく、頭爆発して「Safari をリセット」したら、直った!
と思ったら、なにげなく作業を続けているうちに再発。
ディレクトリ内のデータ整理もしたかったので、必要なファイルだけいれた別フォルダで作業して、やっぱりダメでまたリセット。そして直る。
と思ったら、やっぱり作業を続けているうちに再発。
いちおう、自分だけでなくて、ユーザーからそういう症状になることも聞いているので、直さなくちゃイカンのだけど、こういう場合って、手のうちようが無いよなぁ。
CPU 負荷だとか、メモリ解放とか、そういう面じゃないかと思うんですが、例えば気になるのは、Ajax でデータ入れ替えをバンバンやってると、どんどんメモリ使っちゃうんではないか、と。でもって、そのへんの情報を調べてたら、例えば、Firefox だと、display:none すると、その箇所分、メモリ解放されるらしい。ほんで、データを load する前に、一度そこを display:none してみる、なんてやってますが、症状がでてる状態でそうしても、何も変わりません。
Ajax 箇所の根本的構造を変えようかどうしようか、思案中。常にこういうのは「ちゃんと作ればちゃんと動く」と思ってるので、必ずちゃんとします(笑)
Safari リセットのおかげで、ログイン情報のクッキーも一掃されちゃって、管理巡回してるサイト確認の手間が増えた。非常に効率が悪い。たまらん。
2010年02月10日 13:19 | WebCreate | ichiro

