Home > Logs > July 2007 > This Entry

scriptaculous.js で stack overflow

以前に読者の方からいただいたコメントが重複してたので、コメント投稿の流れがあまり良くないのかもしれないな…と思い修正してテストしていたところ、なんだかパソコンがやたらとうなりだして、IEでのチェックで「stack overflow: line 0」というアラートが出るようになりました。表示を見ればなんとなく意味はわかったんだけど、原因がよくわからなったので調べてみました。が、このアラートの原因になりそうな事象はつかめたけれども、直接の解決に結びつく情報がなくて、仕方なく自分で修正しました。半日以上使った…せっかくの連休を…

で、結論から言うと、根本的な解決には至っていません。でもアラートが出たり、パソコンがうなったりするようなことはなくなりました。結局 script.aculo.us で公開されているライブラリ effects.js を使ってコメントのプレビューや投稿結果を出力している部分でアラートが出ていることはわかったので、その部分の処理は行わないようにしています。もともと CGI からのレスポンス受け取りから0.5秒で結果出力だったのでほとんど使ってないも同然だったし、よくよくソース見てみたら別のライブラリ prototype.js を使っていったん出力はされていたし(これを表示するのに script.aculo.us の effects.js を使っていました)で、その処理をさせなくするとともに、必要ないライブラリを削除→読み込みも最小限にしました。ページ自体もちょっと軽くなったと思います。

もともとトップページにおいて Ajax でページめくりすることを考えたとき、「コメントは個別のページにジャンプしてからね…」なんてことはありえないので、ページめくり機能とともにコメントもできるようにするため、MovableType備忘録さんとこのMovableTypeのコメントをAjaxで投稿するというエントリを参考にカスタマイズを行いました。当初からうまくいったりいかなかったりしていたのですが、ちゃんと動作するようになってからはあまりチェックをしていなかったので、いつから stack overflow するようになっていたのかさっぱりわからなくて苦労しました。いつか誰かの役に立つかもしれないので、一応ここに残しておくことにします。

まあとにかく問題なくコメントできるようになったし、プレビューから投稿の流れもよくなったし、とりあえずはこれでよしとしようと思います。それより問題は、読者の方々にコメントを入れてもらえるのかどうかなのです。

Post Comment




Copyright © okayama, Powered by Movable Type Open Source