October 20, 2005 Javascript closures can be a powerful programming technique. Unfortunately in Internet Explorer they are a common source of memory leaks. Therefore I propose a method to create closures that don't leak memory. Problem First start with a short explanation of the problem I tried to fix. Here is an example of a simple event handler (IE only for clarity): function attach() {
Justin Rogers Microsoft Corporation June 2005 日本語版最終更新日 2006 年 2 月 3 日 Web 開発者の進化 以前は、メモリ リークは Web 開発者にとって大きな問題ではありませんでした。ページは比較的単純に保たれ、サイト内の異なるロケーション間のナビゲーションは解放されたメモリをクリーンアップするうえで優れた方法でした。リークがあった場合も、たいていは気付かないほど小さなものでした。 新しい Web アプリケーションは、より高い標準に従います。ページはナビゲートされずに何時間も実行され、Web サービスを通じて更新情報を動的に取得する場合があります。複合イベント スキーム、オブジェクト指向の JScript、およびアプリケーション全体を生成するためのクロージャを組み合わせることで、言語機能が限界点に達します。これらの変更およびその他
IE でのメモリリーク ちょこちょこと紹介されているので知っている人も多いと思うが、IE には DOM ノードに絡んだメモリリークの問題がある。これに関しては Microsoft 自身の記事である「Understanding and Solving Internet Explorer Leak Patterns」に詳しいが、簡単にいえば DOM ノードオブジェクトに関する循環参照を作ると、IE を終了させるまでそのオブジェクトが解放されないというものだ。記事によればメモリリークには以下のようなパターンがあるという。 1. 単純な循環参照 ある DOM ノードオブジェクトのプロパティをたどっていくと自分自身に行き着く場合。以下のようなパターンが考えられる。 element.property == element element1.property1 == element2, element2
IEあるいはIEエンジンのブラウザ(Sleipnirとか)を使っていて、どうもページの描画速度が遅い気がする―もっと正確には最初にページを開いたときより遅くなった―と感じたことはないだろうか? 特にあなたがJavaScriptを多用したページを開いているならば、もしかしたらIE特有のメモリリーク問題(IE memory leaks problemG)が原因かもしれない。 余談ですが、前回のmoblogエントリーは、自分のブログにモブログしたつもりが間違ってこちらにエントリーしてしまいました。気が向いたら移動しておきます。 で、本題ですが、この問題はより多くの利用者が(IEエンジンの)タブブラウザーを使うようになればなるほど顕在化してくると思われるのでメモしておこうと思います。ppBlogでもJavaScriptは欠かせませんし。最初に言っておきますが、この問題はIE4-6に特有のもので他の
「Yahoo!JAPAN」がIE6のサポートを終了する。Microsoft自ら「9年前の腐った牛乳」と認めるIE6。日本のポータル最大手のサポート終了で、国内でも“脱IE6”の動きが加速しそうだ。 「Yahoo!JAPAN」が12月中旬から順次、Internet Explorer 6(IE6)のサポートを終了する。“脱IE6”の動きは昨年ごろから世界で強まっているが、国内ポータル最大手がサポートを終えることで、国内でも動きが加速しそうだ。 11月10日現在、Yahoo!JAPANトップページにIE6でアクセスすると、「12月中旬より、正しく動作しなくなる場合がございますので、最新のブラウザのダウンロードをおすすめします」という告知が表示される。 トップページ以外のヤフーの各サービスも順次、IE6のサポートを終了する予定。ヤフー広報部は、「IEも7、8が出、9もβ版が出ている状況。新しい方が
Sleipnirの「選択部分のソースを表示」で確認したところ、name属性がセットされていないようです JavaScript DOM で作成したラジオボタンが選択できません。 Sleipnirの「選択部分のソースを表示」で確認したところ、 name属性だけがセットされていないようで、選択できない原因はそれだと思いますが、 セットできない理由が分かりません。 どなたか解決策を教えて頂けないでしょうか。 なお、下記の何れの方法でもダメなようです。 obj.name = "hogehoge" obj.setAttribute("name", "hogehoge"); 念のため、現象確認用のソースも貼っておきます。 <html> <head> <script type="text/javascript"> function create1() { var rObj = document.creat
JavaScriptを使って座標を指定し、画像の表示位置を自由に変化させるサイトは結構あると思います。 ところが、XHTML形式でhtmlを記述している場合だと、overflow:hiddenを指定したボックス内にposition:relativeやposition:absoluteで座標を指定した画像などを配置しても、ボックスからはみ出した部分が隠れずにすべて表示されてしまいました。 これはどうやらIEの仕様らしく、overflow:hiddenを有効にするためには、中に表示するものをpoosition:staticにしなければいけないようです。 でも、position:staticにすると座標を指定して表示することができません。 今回は、このような場合にどうやって対処すればいいか紹介します。 以下に2種類の方法で画像の表示位置を移動できるサンプルを表示します。 上側のサンプルはposi
TOP > WebDesign > IE6利用停止推進プロジェクト。IE6をやめて新しいブラウザを使おう「IE6 No More!」 IE6に苦しめられている、もしくは苦しめられたと言うWEBデザイナーさんは国内だけには留まらず、世界中に存在するかと思いますが、今日紹介するのはIE6の利用をもういい加減にやめようと訴えかけ、推進するプロジェクト「IE6 No More!」です。 2001年に公開されたのにも関わらず、現在でもかなり多くの人が現在も使っており、IE6に対しての費やす時間はWEBデザイナーの生産性を制限しているとの思いからスタートしたそうです。 詳しくは以下 ただWEBページを作って訴えかけているだけではなくて、コードを配布していて、そのコードを貼付ける事で、IE6でサイトにアクセスした際に「あなたは旧式ブラウザをご利用中です。このウェブサイトを快適に閲覧するにはブラウ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く