




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ExtJs内存泄露,内存泄露的原因1。XXX-举出实际例子-解决方法-效果对比,1.页面中的孤立状态的节点没有被回收,需要子节点真的被移除-孤立节点无法通过编程手段来删除,只能努力避免孤立节点的生成Ext的destroy和close不彻底-ExtJs2.2已经改善注册事件方式错误-手动解决-ExtJs2.2已经改善,sIEve观察内存泄露和内存回收,sIEveisaprojecttogetridofmemoryleaksduetosomelimitationsofthegarbagecollectorinInternetExplorer.ExecutingAJAXkindofapplications(likeCordysExplorer)willstressthebrowserheavily.InternetExplorerisnotverystronginMemoryManagement.Withotherwords;ItisveryeasytointroduceseriousmemoryleaksinInternetExplorerbyexecutingJavaScriptandDHTMLmanipulation.,1列出当前页面内所有dom节点的基本信息(htmlidstyle等)2页面内所有dom节点的高级信息(内存占用,数量,节点的引用)3可以查找出页面中的孤立节点4可以查找出页面中的循环引用5可以查找出页面中产生内存泄露的节点,内存总体占用量(单位kb)和上次列表自动刷新时相比,变化的量当前的dom节点数目产生内存泄露的节点数目日志信息(节点发生异常时记录一些信息不常用),演示一下如何用?,Prac_3.html,事件机制,div注册事件Prac_1.htmlPrac_2.htmlExt.get(div1).on(click,function()alertMsg();,原因,发现问题在于ext的wrapfunction,就是listener是global的话就会有问题。见EventManager.js的140行:fn._handlers=fn._handlers|;fn._handlers.push(Ext.id(el),ename,h);这里给传入的listener加了_handlers属性,stopLisener负责清除,那么就能正确的处理。但是destroy直接调用了E.purgeElement.,这个方法好像没办法看到原来的listen,所以,没办法正确的清除_handlers,而_handlers引用了elementon的加入是通过EventManager的addListener方法来做的,这里在每个fn上绑定了_handlers,purgeElement的时候通过Ext.lib.Event的removeListener方法,见300行deletelistenersindexthis.WFN;deletelistenersindexthis.FN;但是这里是只是删除了fn,没有清楚掉里面的handlers,而handlers有el的引用,因为没法清楚对象.而这个时候fn也就是alertMsg是在window下的,我测了一下,单纯删除他是没用的,必须wrap一下,所以出现了你说的必须用function()alertMsg()才正确的情况,使用el.on(eventName,fn)为el添加事件调用Ext.destroy(el)方法移除el此时,如果fn为全局类型,或者是被全局对象引用,那么会使el元素成为孤立节点,无法彻底移除.而如果在Ext.destroy(el)之前,调用el.un(eventName,fn)移除添加的事件,那么就可以彻底移除.但是直接使用Ext.destroy才是ext中描述的正确做法,切ext内部也都是这样使用的,所以应该将解决问题的着手点放在el.on和Ext.destroy方法上.,产生问题的原因执行Element.removeAllListeners时没有调用EventManager.stopListener中的删除fn._handlers缓存内的相关数据导致在IE下当fn为全局对象或者是被引用时,元素无法被正确移除.,ExtJS2.2完美展示,Prac_5.htmlPrac_6.html,该补丁包给几乎所有存在泄露的组件做了修正。虽然补丁所描述的环境是ie,但实质上2.2在任何浏览器上都因为事件模型和组件本身销毁方法考虑不周的缘故使内存不断增长。从2.0的组件树模型,到2.2对事件模型的修改,再到该补丁的出现,一页式的web应用真正走向成熟,现在2.0,2.2,ExtJS3.1发布:大量内存泄漏的改善,Extjs性能优化,针对以下这三种情况讨论一下解决方案:1,加载慢1.1减少要加载的东西不要动不动就ext-all.js,extjs是可以定制的,如果你用不到tree,就不要包含这个组件了。ExtJs的官网上有详细的定制方法和工具。1.2给出合适的用户提示把Js后置,然后前面做一个加载的提示。如果像Gmail那样给出进度条,或者像很多网游那样来点图片或者Tips啥的就更好了,说不定用户还会觉得怎么加载这么快,我还没看清楚呢,呵呵。1.3用的时候再加载动态加载,参考使用ExtJs开发MIS系统(2):Js的动态加载。1.4只加载一次别用iframe了,如果你的静态内容过期做的不好,浏览器会经常再不厌其烦的从服务器下载同样的东西。1.5对你的Js添加过期标记ext-base.js、ext-all.js都可以设置很长的过期时间,甚至永不过期(如果你不换extjs的版本)。这点对所有静态内容都很有用,如何设置过期标记请垂询Google。2,渲染慢2.1少加载少解析、晚加载晚解析1.1,1.3,1.4都对改善渲染慢的情况有效加载的少了自然渲染的快了。2.2别用iframeiframe不仅仅可能会使浏览器加载两遍,还一定会使浏览器解析两遍,放弃它吧,真的。2.3精心设计你的Js代码例如缓存getElementByID()的结果、编译查询表达式之类的东西,这个纯看Js功力。2.4可能的话,让用户换个浏览器吧Chrome比IE的Js渲染快是数量级上的差异!构造一个40列,50行的复杂GridPanel试试,你就会深有体会了对于企业内部的MIS系统,换浏览器还是具有可能性的。3,内存泄露,EXT授权释疑EXT已提供几个可取的授权方式适合多种需要。商业授权很多顾客出于多方的原因需要一个传统的商业执照。这也许是对你的机构适当的授权,如果你:1.不想在一个开源授权里有任何潜在的限制2.必须拥有一个商业授权为了满足你的内部软件认证的需求3.希望给与EXT计划财务上的支持,以确保其成功延续(PS:想大家都有得玩,这才是重点)开放原代码授权Ext的授权是根据开源协议LGPL证书所制定的.你或许应该使用我方的开源认证,如果你:1.在不含非开源软件的开源项目中使用Ext2.计划用于私人,教育或非盈利用途3.应用Ext于商业用途,但你却不想支付EXT计划,没关系!LGPL协议会为你服务浏览证书条款OEM/转售认证如果你能策划把Ext直接捆为一件产品,并作为方程式工具或插件工具框架来包装或出售,我方希望你能与我方合作,立一个适当专门认证.与我方合作你将可获取:1.市场上独家供应正版Ext-based产品2.大量合作品牌和合作市场的机会3.Ext中直接获得授权的支助,Ext.Wtotype.beforeDestroy=function()Ext.destroy(this.focusEl,/新增this.bwrap,/新增this.resizer,this.dd,xy,this.mask);Ext.Window.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械制造技术基础期末试题及答案
- 交通银行2025绍兴市结构化面试15问及话术
- 中国银行2025乐山市信息科技岗笔试题及答案
- 工商银行2025平顶山市秋招笔试综合模拟题库及答案
- 2025年3D打印技术的金属3D打印技术
- 中国银行2025秋招笔试性格测试题专练及答案海南地区
- 农业银行2025洛阳市秋招群面模拟题及高分话术
- 中国银行2025北京市秋招笔试专业知识题专练及答案
- 2025行业数字化转型路径分析
- 中国银行2025双鸭山市金融科技岗笔试题及答案
- 风电场基础知识培训课件记录
- 2025广东广州市公安局第二批招聘交通辅警150人笔试参考题库附答案解析
- 2025年内科慢性疾病治疗路径分析测试答案及解析
- 2025秋人教版(2024)七年级上册英语学期教学计划
- 智能会计应用课件
- 2025全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案
- 2025-2026学年北师大版小学数学四年级上册教学计划及进度表
- 【初一】【七年级】【语文上】【秋季】开学第一课《“语”你相遇今朝》【课件】
- 国防知识教育培训课件
- 预防艾滋病、梅毒和乙肝母婴传播服务流程
- 中国陶瓷教学课件
评论
0/150
提交评论