Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该在重新绑定时使用Jquery-$.remove()吗?_C#_Javascript_Jquery_Asp.net_Html - Fatal编程技术网

C# 我应该在重新绑定时使用Jquery-$.remove()吗?

C# 我应该在重新绑定时使用Jquery-$.remove()吗?,c#,javascript,jquery,asp.net,html,C#,Javascript,Jquery,Asp.net,Html,我有从服务器端生成的html表: DataTable dt2 = new Claims_Service().ASO_MOD_Get_Nulls(); myGridView.DataSource = dt2; myGridView.DataBind(); 表格有行,每行有一个按钮 在客户端,我写: $(".myGridView").on('click', '.myButton', function () {

我有从服务器端生成的html表:

           DataTable dt2 = new Claims_Service().ASO_MOD_Get_Nulls();
           myGridView.DataSource = dt2;
           myGridView.DataBind();
表格有行,每行有一个按钮

在客户端,我写:

 $(".myGridView").on('click', '.myButton', function ()
        {
          ...
        }
现在让我们假设我需要在服务器端重新绑定。(重新绑定===完全回发和重新生成页面)

我应该在重新绑定之前使用jQuery
remove
函数来释放事件并防止内存泄漏吗

另外,如果我写下以下内容,你的答案会有所不同吗

$(".myGridView .myButton").on('click',function ()

当您通过完整POST或GET请求重新加载页面时,无需删除处理程序。在任何情况下,都将从DOM中删除元素,而不仅仅是删除事件处理程序。要删除要使用的事件处理程序。

上的
将回调应用于任何
.myButton
元素(它执行与旧的
live
方法相同的任务)。使用
remove
不会清理客户端绑定

您应该避免或阻止原始绑定(如果重新绑定是通过页面回发完成的)。

如果这样写:

$(".myGridView").on('click', '.myButton', function () { /* your code */ });
内存泄漏不是一个问题,因为您正在dom bubble上对所有“.myButton”事件进行模式匹配

$(".myGridView .myButton").on('click',function () { /* your code */ });

是否附加到所有独立的“.myButton”事件

重新绑定是否通过AJAX方法完成?该类是否应用于正在删除/重新添加的元素?@tvanfosson no.Pure server命令并重新生成html。我会把它写在我的问题里。我认为记忆韭葱会在第一个场景中发生。关键是缩短气泡路径。不是在文档元素顶部冒泡,而是冒泡到.MyGridView…如果您使用.remove()销毁“MyGridView”,jQuery会在其自身之后进行清理。对吗?是的。但破坏是通过邮寄回来的。问题是:我(在_dopostBack之前)是否需要清理某些内容?当页面处于onload或abort状态时,jQuery调用.remove()。主要的一点是通过向dom附加较少的事件来减少浏览器内存的负担。通过使用第一个方法,可以在页面处于onunload或abort状态时调用.jQuery.remove()。哇,是这样写的吗?@RoyiNamir-是的,当它从DOM中删除元素时,它也会删除处理程序,但主要功能是删除元素。如果您只想删除处理程序,请使用off()。关键是我不需要上一页中的任何内容。为什么我不能使用remove?如果你正在写一篇完整的文章,浏览器本身应该清理上一页的资源。你不需要明确地去做。我想有些浏览器可能会泄漏内存,但我认为这是它们清理代码的一个功能,如果手动删除处理程序,也可能会泄漏内存。为了清楚起见,你是说,我不必做任何正确的事情。重新加载页面应注意释放内存。使用remove不会清理客户端绑定:Remopve将清理元素+绑定。为什么我要使用ITA因为您正在绑定“on”,每个元素“现在和将来”都将绑定单击事件。。。这就是为什么remove不能进行适当的清理。当然,remove将删除元素,从而删除与这些元素关联的绑定,但它肯定不会删除与所有.myButton元素的绑定。