- PR -

javascriptのwindow.openでメモリリーク?

投稿者投稿内容
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-03-27 13:00
OS:WINDOWS XP(SP2)
IIS 5.1
開発環境:ASP.NET(C#)2.0

いつも、お世話になっております。

親画面から選択ボタン(ハイパーリンク)を押下すると、
マスタに登録されている内容を五十音順で表示する子画面を表示しています。
下は選択ボタンを押した時のjavascriptです。

<script type="text/javascript">
var win;
function subwinclose() {
if (win != null) win.close();
return true;
}
function subwinopen(url) {
subwinclose();
win = window.open(url,"subwin");
return false;
}
</script>

問題はこの子画面を何度も表示したり閉じたりしていると
そのうち子画面が真っ白になってブラウザ自体(親画面も新規ウィンドウも立ち上がらない)が固まってしまう現象が起きています。
ウインドゥのXボタンは有効なので閉じた後に
もう一度同じ操作をしても固まりませんでした。
しかし閉じた後でも何度も表示してり閉じたりすると同じ現象が確認できました。

調査した結果、クライアント側のタスクマネージャから見た物理メモリが
Webアプリを立ち上げた時の物理メモリより25000程なくなると固まってしまうのを
確認できました。

皆さんの中で同じような現象にあわれた方はいらっしゃいますでしょうか?
子画面では五十音順の表示タブ等、多くの画像(gif)を使っていることも原因のひとつなのでしょうか?
javascriptでメモリの開放等をやらなければいけないのでしょうか?^^;
何かご存知の方がいらっしゃればご教授お願いいたします。
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-03-27 14:22
この事象の原因がメモリリークであるかは、わかりませんが、
IEの場合はメモリリークを起こす可能性があるかもしれません。
ブラウザは何を使用しているのでしょうか?
また使用しているブラウザ以外のブラウザでも
同様の事象が発生するのでしょうか?
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-03-27 14:59
ご返答ありがとうございます。

使用しているブラウザはIE6.0です。
すみません。その他のブラウザについては試せる環境がないというのが現状です。。。

IEの場合はjavascriptでメモリリークを起こす可能性があるとのことですが
IEのバグか何かなんでしょうか?
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-03-27 15:13
引用:

未記入さんの書き込み (2007-03-27 14:59) より:
ご返答ありがとうございます。

使用しているブラウザはIE6.0です。
すみません。その他のブラウザについては試せる環境がないというのが現状です。。。

IEの場合はjavascriptでメモリリークを起こす可能性があるとのことですが
IEのバグか何かなんでしょうか?



そういうことはためしてから言いなよ。

それと試せる環境がないの意味がわからない。
目の前に端末がないって意味?
今回の現象はどうやって確認したの?

>子画面では五十音順の表示タブ等、多くの画像(gif)を使っていることも原因のひとつなのでしょうか?

とまで考えているならgif画像の表示をやめたりして検証していけばいいじゃん。
再現できる最小限のコードまで絞り込む=原因が判明する。
グレハン
常連さん
会議室デビュー日: 2006/02/23
投稿数: 25
投稿日時: 2007-03-27 15:25
いや、スレ主さんはIE6.0では試したらすぃ。

別のブラウザってのは
FIREFOXとかoperaではどうなの?
って意味でKOXさんは言ってるんでは?


ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-03-27 15:50
引用:

グレハンさんの書き込み (2007-03-27 15:25) より:
いや、スレ主さんはIE6.0では試したらすぃ。

別のブラウザってのは
FIREFOXとかoperaではどうなの?
って意味でKOXさんは言ってるんでは?





誰に向けての発言?
俺だと思ったんだけどKOXさんというハンドルも出てきている。
俺はKOXさんには返答をした覚えはないのでわからなかった。

俺だとしたら下記部分に対しての言ってるのだとよそう。

>そういうことはためしてから言いなよ。
っていうのは

>IEのバグか何かなんでしょうか?
とか言うなら

>すみません。その他のブラウザについては試せる環境がないというのが現状です。。。
別のブラウザで試してからの方がいいよねってこと。

そういうことは(別のブラウザで)ためしてから(もしくはすべき原因の追究をしてから)言いなよ。

と書くべきだったか。

ちなみに2行目以降は現状すべきことを書いたまでで何ら間違っていないはず。

[ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2007-03-27 15:53 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-03-27 15:52
引用:
使用しているブラウザはIE6.0です。
すみません。その他のブラウザについては試せる環境がないというのが現状です。。。

例えばFirefoxだったらダウンロードしてインストールするだけだと思うのですが。
(端末はあるけど勝手にアプリ入れちゃいけない規則になってるとかだったら、話は別ですけど)
未記入
会議室デビュー日: 2007/02/20
投稿数: 8
投稿日時: 2007-03-27 15:53
言葉足らずですみません。
試せる環境がないということの説明ですが、、、

開発マシンの方では(IE以外ではFireFox)この事象には至らず
お客様方のマシンで起きているため、容易にFireFoxなどIE以外のブラウザを
入れるというのが困難ということです。
調査(IE6.0)は確かにお客様のPCをお借りして確認したんですが、
別ブラウザを入れるとなると…という話です。
はっきり言ってこちらの都合なんですが^^;

IEではそのような可能性があるということ、
gifの表示を別な方法で対応するということを踏まえて自分なりに試行錯誤してみます。
何かこの現象について知ってる方がいましたら厚かましいようですがよろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)