2006年12月15日

jscalendar memory leak

最近、JavaScript のからんだWEB開発の案件には Drip ツールが手放せません。IE でメモリリークが起こっているかどうかが手に取るように分かります。

http://outofhanwell.com/ieleak/

あるメモリリークを調べていたところ、原因は jscalendar にありました。Google で "javascript calendar"とやれば出てくるほどポピュラー(?)なプロジェクトですが、このデモページでも、Drip で表示するとリークが起こっていそうです。

こちらでは1日中ブラウザを広げておくような業務アプリケーションをWEBで作成しているので、ちょっとのリークでも問題になります。ですから見過ごすわけにはいきません。

実は、これを直接読んだのではなく、phpMyEdit の extension が jscalendar を使っていたために影響を受けていました。有名なカレンダーですし、かなり豊富にあちこちのブラウザに対応しているので、選択としては妥当なものだったかもしれません。

最初は、 jscalendar のソースコードを見て、幾つかのリークを直していたのですが、だんだん時間がかかりそうなことが分かってきたため、これは jscalendar のプロジェクトソースをいじるより、phpMyEdit の新しい extension を作ったほうが早く終わるかもしれない、という気になってきました。

calpopup のエクステンションを参考にして、高橋 登史朗さんの作成された Javascript カレンダーを phpMyEdit のエクステンションとして使ってみました。(こちらは、"javascript カレンダー"と検索すると最初に出てくるページです。)
http://allabout.co.jp/internet/javascript/closeup/CU20020529/

すると、jscalendar を直そうとしていたよりもはるかに少ない労力で目標が達成できました。やはり、調子の悪いものを修理して使おうとするよりは、新たに書いてしまったほうがよいようです。それにしても、高橋さんのカレンダーは、jscalendar と比べてかなりソースもコンパクトなのに、きっちり動きます。また、リークもまったくありません。

今後はもう phpMyEdit ではなくて、CakePHP 一つにしようと思わせる出来事でした。あとは、「何で JavaScript で、インタプリタでメモリリークが起こってしまうの……」と。
ラベル:drip javascript
posted by SDozono at 00:33| 東京 ☔| Comment(0) | TrackBack(0) | JavaScript | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
WebとCTI、VoIP技術の高みを目指して - 技術者の24時間
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。