[Seasar-user:18853] Re: Teeda-Ajaxでのメモリ増加

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 11月 5日 (木) 14:14:04 JST


米林です。

startAutoUpdateが呼ばれるタイミングはどうなっていますか?

頂いた情報だけですとTeedaAjaxでメモリリークが起こっているか
どうか、確証が持てないです。
例えば、TeedaAjaxをやめて同一サンプルをjQueryで動かして
メモリリークが無ければTeedaAjaxでしょうし、メモリリークが
同様に起これば別処理になりますので。

teeda-html-exampleに上書きして動作するサンプルがあると
解決しやすいと思います。
最小構成で作成可能でしょうか?

よろしくお願いします。

高橋 良子 さんは書きました:
> はじめまして。
> 高橋(良)と申します。
> よろしくお願いします。
> 
> Teeda-Ajaxを使用してサーバからデータを参照する処理を、
> setTimeout()により繰り返し実行しているのですが、ブラウザの
> 使用メモリが増加してしまいます。
> メモリ消費箇所を特定するために、あちこち省いていったら、
> 以下のAjax処理を繰り返すのみが残りました。
> 
> var autoUpdateID;
> var autoUpdateTimer = 10*1000;
> var ajaxProcess;
> 
> function XXX_ajaxUpdate(response) {
>   clearTimeout(autoUpdateID);
>   autoUpdateID = setTimeout("startAutoUpdate()", autoUpdateTimer);
> }
> 
> //自動更新 Ajax処理 (Teeda-Ajax)
> function startAutoUpdate() {
>   if (ajaxProcess) {
>     ajaxProcess.cancel();
>   }
>   ajaxProcess = null;
> 
>   ajaxProcess = Kumu.Ajax.executeTeedaAjax(
>                              XXX_ajaxUpdate,
>                              [param1, param2, param3],
>                              Kumu.Ajax.RESPONSE_TYPE_TEXT);
> }
> 
> //自動更新処理開始/停止
> function setAutoUpdate(obj) {	//<- objはチェックボックス
>   if (obj.checked) {
>     autoUpdateID = setTimeout("startAutoUpdate()", autoUpdateTimer);
>   } else {
>     clearTimeout(autoUpdateID);
>   }
> }
> 
> 上記の処理ではメモリは一切増えないでほしいのですが...。
> 
> メモリの増加量は、サーバからの送信データ量に比例しているようです。
> 
> 使用ブラウザは IE6, Firefox3.5で、Firefoxのほうが増加量が多いです。
> 
> 原因は何が考えられるでしょうか。
> 
> 
> 高橋(良)

-- 
米 林   正 明
http://www.abby.co.jp


Seasar-user メーリングリストの案内