在Jquery Mobile/Jquery中离开页面时,是否应该解除事件/插件的绑定?

在Jquery Mobile/Jquery中离开页面时,是否应该解除事件/插件的绑定?,jquery,jquery-plugins,jquery-mobile,event-handling,Jquery,Jquery Plugins,Jquery Mobile,Event Handling,我在一个Jquery移动站点中使用了一堆插件,并且正在寻找一种最好的方法,以便在我离开一个页面时“清理”它,而这个页面将保留在DOM中 问题是,当页面被拉回到视图中时,我应该尝试取消绑定/关闭/取消删除插件绑定并重新初始化,还是应该在用户位于另一个页面时让所有内容都“在后台”运行 无论哪种方式,如果我像这样设置插件,最好的方法是什么: // example using flexslider plugin $('div:jqmData(role="page").basePage').on('p

我在一个Jquery移动站点中使用了一堆插件,并且正在寻找一种最好的方法,以便在我离开一个页面时“清理”它,而这个页面将保留在DOM中

问题是,当页面被拉回到视图中时,我应该尝试取消绑定/关闭/取消删除插件绑定并重新初始化,还是应该在用户位于另一个页面时让所有内容都“在后台”运行

无论哪种方式,如果我像这样设置插件,最好的方法是什么:

 // example using flexslider plugin
 $('div:jqmData(role="page").basePage').on('pagecreate.flexslider', function() {    

      // make sure this fires only once when pagecreates fires more often
      if ( $('.flexslider').length > 0 && $('.flexslider').jqmData('bound') != true ) {
          // lock           
          $('.flexslider').jqmData('bound',true);
          $('.flexslider').flexslider({ 
                    animation: "slide", 
                    controlsContainer: $(".flex-container")
                    }); 
          } 
      });
问题:
假设这是我的Jquery移动锚页面(始终保持在DOM中),当用户离开页面并重新加载时我应该关闭它,还是让滑块在后台运行


这里的最佳实践是什么?

当您离开通过AJAX带入DOM的页面时,jQuery Mobile将自动从DOM中删除该页面,包括其子体及其所有事件处理程序/数据

对于要工作的动画页面转换,您正在转换的页面 from和to都需要在DOM中。但是,保留旧页面 DOM会很快填满浏览器的内存,并可能导致某些移动应用程序崩溃 浏览器速度会减慢甚至崩溃

因此,jquerymobile有一个简单的机制来保持DOM整洁。 无论何时通过Ajax加载页面,jQuery Mobile都会标记要加载的页面 在以后离开DOM时从DOM中删除 (从技术上讲,是在pagehide事件中)。如果重新访问已删除的页面, 浏览器可能能够从其浏览器中检索页面的HTML文件 隐藏物如果不是,它将从服务器重新提取文件。(如属 在嵌套列表视图中,jQuery Mobile将删除组成列表的所有页面 当您导航到不属于该页面的页面时,将显示嵌套列表 列表。)

多页模板中的页面不受此功能的影响 all-jQueryMobile只删除通过Ajax加载的页面

资料来源:

jQuery Mobile在内部使用
.remove()

.empty()类似,.remove()方法从 多姆。如果要删除元素本身,请使用.remove() 就像里面的一切。除了元素本身,所有 与元素关联的绑定事件和jQuery数据将被删除


来源:

有时我会将页面保存在DOM中。对于这种情况,我在寻找某种“清洁剂”@frequent
。remove()
是你的朋友。我还将删除对您在上使用的
.remove()
元素的任何JS引用。比如:
var$image=$(“#我的img”)