jquery 相关页面内存漏问题
2013-03-13 20:50
148 查看
最近目前做的系统页面内存严重泄漏,研究发现主要是jquery框架引起,主要几个泄漏点:
1.jquery.1.7.2.min.js每次加载大概400K,如果是作为一个iframe的话,点菜单,不停切或页面刷新会不断增涨.
解决办法:找到一个jquery.1.7.1.js或jquery.1.8.2.min.js这个版本不会泄漏.
2.jquery-ui.1.8.2.custom.js泄漏更严重,每次大概泄漏6-7M,刷几下系统就动不了.
解决办法:同样,找到一个不泄漏的版本jquery-ui.1.7.2.js这个版本不会泄漏.
存在问题:不过存的在问题是它与jquery.1.7.1配合使用会有dialog的beforeclose的事件与其它版本beforeClose区别C是小写,别外日期控件点也弹不出来选择日期表,这个暂时还没分析原因,用的时候注意一下.
3.jqGrid.min.js表格刷数据也会泄漏,我们是5秒调一次$("#dataTB").trigger('reloadGrid');这个不断刷数据.放一个晚上大概泄漏上80M.
原因:分析发现是reloadGrid这个方法每次都是调ajax从服务器拿数据刷新表格,原以为是ajax引起的,后来发现是操作DOM引起,拿到数据后,一个个tr写进来,如果表格是100行就要写100次,严重泄漏.
解决办法:修改jqGrid.min.js里面的ka方法,里面有一个循环将$("b ..tbody:first").append(H.jion(""));改为在for里只给一个临时字符串,for完后再一次写,减少操作次数据,内存泄漏从100M减到1M的效果,相当明显。
1.jquery.1.7.2.min.js每次加载大概400K,如果是作为一个iframe的话,点菜单,不停切或页面刷新会不断增涨.
解决办法:找到一个jquery.1.7.1.js或jquery.1.8.2.min.js这个版本不会泄漏.
2.jquery-ui.1.8.2.custom.js泄漏更严重,每次大概泄漏6-7M,刷几下系统就动不了.
解决办法:同样,找到一个不泄漏的版本jquery-ui.1.7.2.js这个版本不会泄漏.
存在问题:不过存的在问题是它与jquery.1.7.1配合使用会有dialog的beforeclose的事件与其它版本beforeClose区别C是小写,别外日期控件点也弹不出来选择日期表,这个暂时还没分析原因,用的时候注意一下.
3.jqGrid.min.js表格刷数据也会泄漏,我们是5秒调一次$("#dataTB").trigger('reloadGrid');这个不断刷数据.放一个晚上大概泄漏上80M.
原因:分析发现是reloadGrid这个方法每次都是调ajax从服务器拿数据刷新表格,原以为是ajax引起的,后来发现是操作DOM引起,拿到数据后,一个个tr写进来,如果表格是100行就要写100次,严重泄漏.
解决办法:修改jqGrid.min.js里面的ka方法,里面有一个循环将$("b ..tbody:first").append(H.jion(""));改为在for里只给一个临时字符串,for完后再一次写,减少操作次数据,内存泄漏从100M减到1M的效果,相当明显。
相关文章推荐
- jquery-multiselect取值、刷新页面保持选中、AJAX相关问题集合
- 在velocity页面中使用jquery的相关问题
- 不同版本的jquery的复选框checkbox的相关问题
- jquery获取页面相关尺寸
- jQuery 中ajax异步请求 回调函数的相关问题
- UIWebView使用中的内存相关问题---强烈推荐使用WKWebView
- 深入解析C语言中的内存分配相关问题
- 移动端jQuery修正Web页面滑动时div问题的两则实例
- 微信小程序开发过程中tabbar页面显示的相关问题及解决办法
- 页面多个Jquery版本共存的冲突问题,解决方法!
- 一例由于用redis缓存一张表到内存导致列表页面在搜索查询的时候出现未将对象引用设置到对象的实例问题的解决
- jquery easyui Tab 引入页面的问题
- jQuery学习笔记(二):this相关问题及选择器
- jQuery Validate相关问题
- 使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
- linux内存相关整理--为了看swap的问题
- 移动端页面布局相关问题
- jQuery利用ajax调用json数据相关问题
- 解决VS2010打开Web页面时经常由于内存较低而导致VS2010自动关闭的问题