質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

Q&A

0回答

2413閲覧

$ajaxの応答でfixed-table-headerプラグインを利用するとメモリリークする

hidetzu

総合スコア19

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

ASP.NET MVC 4

ASP.NET MVC4は、MVCパターンを利用して、高度なテスト機能と保守機能を備えた Web アプリケーションを開発するためのフレームワークです。

0グッド

1クリップ

投稿2016/12/15 14:38

編集2022/01/12 10:55

###前提・実現したいこと
ASP.NET MVCを利用して、ajax通信の結果でhtml内の内容を更新するような実装を行っています。fixedTableHeader()をフラグインを利用するとメモリリークしているようです。fixedTableHeader()は、$.ajaxの応答で返されたtableタグ内のヘッダー部と一番左の列を固定したスクロールを行いたいからです。

###解決したい問題
メモリリークしないようにしたい。
tableタグ内のヘッダー部と一番左の列を固定したスクロールが行えるような変更方法があれば、fixedTableHeader()を利用しない方法でも構いません。

###該当のソースコード

cshtml

1 2@{ 3 ViewBag.Title = "Index"; 4} 5@section Header 6{ 7<script type="text/javascript"> 8 var resData = null; 9 $(function () { 10 $("td").on("click", function (e) { 11 alert("hello"); 12 draw(); 13 }); 14 15 function draw() { 16 $.ajax({ 17 type: "POST", 18 url: '@Url.Action("TableData", "Sample")', 19 success: function (data) { 20 $("#resiveData").empty(); 21 $("#resiveData").html(data); 22 $("#sampleTable").fixedTableHeader(); 23 }, 24 25 error: function () { 26 debugger; 27 } 28 }); 29 } 30 31 draw(); 32 setInterval(function () { draw(); }, 10000); 33 }); 34</script> 35 } 36 37<h2 > Index</h2 > 38<div id="resiveData"></div>

###試したこと
$("#sampleTable").fixedTableHeader();があるとメモリリークすることは分かりました。
定期的にヒープのスナップショットを見ると$.ajaxの応答結果で返されたtableへの参照が増えていました。

###補足です
Google ChromeのDeveloper ToolsのTimelLineを利用してメモリ使用状況を確認したところ、徐々にメモリ使用量が増えているように見えました。
また、IEのF12のメモリタブにて定期的にヒープのスナップショットを取り、スナップショットの差分を見ると、HTMLTableElement,HTMLTableDataCellElementあたりの保持されちているデータサイズが増えているようでしたので、メモリリークと判断しました。

###補足情報(言語/FW/ツール等のバージョンなど)
ASP.NET MVC
jQuery 1.10.2
fixed-table-headerは下記サイトの最新版を利用
https://github.com/hungnq1989/fixed-table-header

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/12/15 14:49

あなたの言うメモリリークとは何か、何を見てどういう判断をしてメモリリークだと思ったか書いていただけませんか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問