Homeサーバー管理 › 後遺症がある、ような

後遺症がある、ような

単に時間開いたせいでどう作ってたか忘れただけですけどね。
とりあえず、今週何とかしようと思ってたレンタルチャット的な何かですが、全く手が付けられてません。代わりに他のところで機能強化してます。
けど、返ってそれでよかったのかもしれません。
レンタルチャット的な何かでは、現在のリア茶のように常に画面更新をかけるのではなく、発言部のみを再読み込み、JavaScriptで置き換えということをやろうと思っています。
んが、今まで俺がやってたやり方だと、ある程度更新をかけるとメモリリークが発生するという不具合があることが判明しました。
備忘用に書いておくと、原因はinnerHTMLの使い方で、ある要素の内部のinnerHTMLを上書きすると、前のinnerHTMLで生成されたエレメント自体は生き残ってしまうらしく、エレメントが無制限に増えてしまうということが発生するようです。
これを避けるためには、まず対象となるエレメントからremoveChildを使って子エレメントを削除し、次にdocument.createElementで新しいエレメントを作成、その中にinnerHTMLを埋め込み、生成したエレメントをappendChildするということが必要らしいです。
大半の人は何言ってるのか分からないと思いますが、ちょっとでもJavaScriptやってる人なら、innerHTMLの便利さと重要さは理解できると思います。しかしその使い方には注意が必要だったというわけです。
趣旨取れの方でもinnerHTMLによる動的置き換えの箇所は結構ありますので、全てremoveChild・appendChild方式に置き換えることにしました。割と大変でした。
これを踏まえてレンタルチャット的なものを作れば、メモリリークの発生しない非同期チャットが作れるんですが、やっぱりどこまで作ったか忘れたっていうね。そもそもセキュリティ云々のところで唸ってたはずだし。

何はともあれ、5月いっぱいかかるかもしれません。ショウガナイネ。

次はブーメランと宣言していたのでベネさんシクヨロ。

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

*