从零开始学_JavaScript_系列(25)——dojo(10)摧毁一个widget

简介: (84)摧毁一个widget ①假如我们想摧毁一个widget该怎么办?   ②创建时,将该widget赋值给一个变量,通过调用该变量的destroy方法,可以直接摧毁;——成功   ③假如我们将该widget挂载到一个dom结点下,那么摧毁这个dom(例如domConstruct.empty(该dom结点),只能让我们找不到这个widget,但实际上这个widget还是存在的;

(84)摧毁一个widget

①假如我们想摧毁一个widget该怎么办?

 

②创建时,将该widget赋值给一个变量,通过调用该变量的destroy方法,可以直接摧毁;——成功

 

③假如我们将该widget挂载到一个dom结点下,那么摧毁这个dom(例如domConstruct.empty(该dom结点),只能让我们找不到这个widget,但实际上这个widget还是存在的;

 

验证方法:该widget在创建的时候添加一个定时器函数,用于定时console.log自身,从widget创建开始,该定时器会通报,摧毁其父dom结点后,依然会通报该widget(和未摧毁前没有什么不同)。而如果正常摧毁的话,其内部一些元素将为空。——失败

 

 

解决办法:

通过aspect或者topic/subscribe,来将父容器摧毁dom这个事件,和widget的destroy方法绑定起来。

当父容器调用其自身方法摧毁dom时,子widget可以监听到,然后destroy自身。——成功

 

 

④假如能获知该widget的id的话,通过调用"dijit/registry"模块,使用其方法registry.byId(widget的id),来获取该widget,然后调用其destroy方法摧毁该widget即可。——成功

 

 

目录
相关文章
|
9月前
|
设计模式 JavaScript 前端开发
|
JavaScript API
从零开始学_JavaScript_系列(17)——dojo(6)(声明一个类declare)
(71)声明一个类declare 作用: 封装一个类,然后可以通过调用这个类,来调用其类方法。   优点: ①可以继承其他类的类方法;   ②假如我们需要使用一个类的类方法,而这个类依赖于5个插件。如果正常调用的话,我们需要在每个使用这个类的js文件里,调用这5个插件。当我们使用封装时,我们只需要调用这个类即可。而调用这个类的方法很简单。   ③可以使得代码模块化,按
4280 0
|
前端开发 JavaScript 容器
从零开始学_JavaScript_系列(14)——dojo(7)(饼图,BorderContainer,hashchange,弹窗)
5/5更新。BorderContainer自适应在本地时正常使用的方法,请查看原文代码之前那一段话 (60)创建一个饼形图 比较简单的标签声明法:(只需要修改数据即可) ①首先,加载dojo文件和样式文件:(关于style.css,需要根据自己找到的路径修改,或者使用我从官网上找到的链接:https://dojotoolkit.org/documentation/tutorial
1485 0
|
缓存 索引 数据格式
从零开始学_JavaScript_系列(十一)——dojo(5)(GRID表格进阶:更新值,name,重置表结构/缓存,重绘表格)
如果没接触过dojo,或者是dojo的gridx控件,请查看我之前几篇博客,写的已经非常详细了 最重要的,更新grid中指定单元格的值,请拉到最后看(59) 至此,grid表格日常所需的常见功能已经基本完结。如果有其他功能需求,请评论提出。 (54)获得某列的name属性 代码: grid.column(2).name(); 效果: ①获得第2+1=3列的na
1214 0
|
索引 缓存 前端开发
从零开始学_JavaScript_系列(十一)——dojo(4)(GRID表格进阶:格式化、style、数据获取、多重排序、点击事件)
如果没有阅读过gridx表格的基本运用教程,建议先阅读这篇(4天点击量已经接近5k): http://blog.csdn.net/qq20004604/article/details/51170919 里面很详细的说明了gridx表格的创建,常用模块,和基本使用。 如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article
1962 0
|
JavaScript 前端开发 Python
从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)
如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo。 关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论、或者站内信,我会尽快回复。
2771 0
|
JSON 缓存 前端开发
从零开始学_JavaScript_系列(十)——dojo(3)(GRID表格创建、样式、列宽可变、排序、过滤器)
如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo。(当然,本篇也考虑了未使用过dojo的人,可以只阅读该链接关于dojo下载的部分,以获得dojo) 关于dojo的下载,请查看: https://dojotoolkit.org/download/
1896 0
|
机器学习/深度学习 JavaScript 前端开发
从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)
关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论、或者站内信,我会尽快回复。   (1)加载 ①首先,先设置   <script>      //替代使用data-dojo-config,我们创建一个dojoConfig对象(是个设置)在我们调
2802 0
|
Web App开发 JavaScript 前端开发
找出并解决 JavaScript 和 Dojo 引起的浏览器内存泄露问题
简介: 如果大量使用 JavaScript 和 Ajax 技术开发 Web 2.0 应用程序,您很有可能会遇到浏览器的内存泄漏问题。如果您有一个单页应用程序或者一个页面要处理很多 UI 操作,问题可能比较严重。
1204 0
|
JavaScript 前端开发 Java
Spring Roo 3 实例训练[同时使用Javascript库dojo和jQuery并使用Rest服务]
前两篇讲解了ROO的一些基本知识,这篇来个实例看看整个的开发过程。 首先进入roo命令行,执行如下的脚本[建工程和必要的设置] project --topLevelPackage lesson persistence setup --provider HIBERNATE --database ...
979 0