修复table重新渲染的内存泄漏
This commit is contained in:
		
							parent
							
								
									526d1cbec1
								
							
						
					
					
						commit
						c3ac588bdb
					
				
							
								
								
									
										3
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | { | ||||||
|  |     "svn.ignoreMissingSvnWarning": true | ||||||
|  | } | ||||||
							
								
								
									
										25
									
								
								dist/layui.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								dist/layui.js
									
									
									
									
										vendored
									
									
								
							| @ -18487,6 +18487,7 @@ layui.define('layer' , function(exports){ | |||||||
|           ,contentType: false  |           ,contentType: false  | ||||||
|           ,processData: false |           ,processData: false | ||||||
|           ,dataType: 'json' |           ,dataType: 'json' | ||||||
|  |           ,async: false | ||||||
|           ,headers: options.headers || {} |           ,headers: options.headers || {} | ||||||
|           //成功回调
 |           //成功回调
 | ||||||
|           ,success: function(res){ |           ,success: function(res){ | ||||||
| @ -19719,7 +19720,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|     ,cache: {} //数据缓存
 |     ,cache: {} //数据缓存
 | ||||||
|     ,allData:[] // 全部数据
 |     ,allData:[] // 全部数据
 | ||||||
|     ,index: layui.table ? (layui.table.index + 10000) : 0 |     ,index: layui.table ? (layui.table.index + 10000) : 0 | ||||||
|      |     ,winResiz:[] | ||||||
|     //设置全局项
 |     //设置全局项
 | ||||||
|     ,set: function(options){ |     ,set: function(options){ | ||||||
|       var that = this; |       var that = this; | ||||||
| @ -20059,6 +20060,8 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|     that.key = options.id || options.index; |     that.key = options.id || options.index; | ||||||
|     table.allData[that.key] = options.data |     table.allData[that.key] = options.data | ||||||
|      |      | ||||||
|  |     // 添加到全局渲染中,为了全局resize防止内存泄漏 
 | ||||||
|  |     table.winResiz[that.key] = that | ||||||
|     //生成替代元素
 |     //生成替代元素
 | ||||||
|     hasRender[0] && hasRender.remove(); //如果已经渲染,则Rerender
 |     hasRender[0] && hasRender.remove(); //如果已经渲染,则Rerender
 | ||||||
|     othis.after(reElem); |     othis.after(reElem); | ||||||
| @ -21344,6 +21347,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|           } |           } | ||||||
|         } |         } | ||||||
|         that.config.onColumnsWidth && that.config.onColumnsWidth(that.config.cols) |         that.config.onColumnsWidth && that.config.onColumnsWidth(that.config.cols) | ||||||
|  |         if (layui.soulTable) { layui.soulTable.fixTableRemember(that.config, dict) } //拖动列宽 记忆开启
 | ||||||
|         dict = {}; |         dict = {}; | ||||||
|         _BODY.css('cursor', ''); |         _BODY.css('cursor', ''); | ||||||
|         that.scrollPatch(); |         that.scrollPatch(); | ||||||
| @ -21680,10 +21684,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|       layer.close(that.tipsIndex); |       layer.close(that.tipsIndex); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     //自适应
 |     // //自适应 
 | ||||||
|     _WIN.on('resize', function(){ |     // _WIN.on('resize', function(){
 | ||||||
|       that.resize(); |     //   that.resize();
 | ||||||
|     }); |     // });
 | ||||||
|   }; |   }; | ||||||
|    |    | ||||||
|   //一次性事件
 |   //一次性事件
 | ||||||
| @ -22060,6 +22064,17 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|   $(function(){ |   $(function(){ | ||||||
|     table.init(); |     table.init(); | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   $(function (){ | ||||||
|  |      //自适应
 | ||||||
|  |     _WIN.on('resize', function(){ | ||||||
|  |       // that.resize();
 | ||||||
|  |       for(let i in table.winResiz){ | ||||||
|  |         table.winResiz[i].resize() | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
|  | 
 | ||||||
|    |    | ||||||
|   exports(MOD_NAME, table); |   exports(MOD_NAME, table); | ||||||
| }); | }); | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								package.json
									
									
									
									
									
								
							| @ -12,21 +12,23 @@ | |||||||
|   }, |   }, | ||||||
|   "homepage": "https://github.com/layui/layui/", |   "homepage": "https://github.com/layui/layui/", | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  |     "del": "^2.2.2", | ||||||
|     "gulp": "^4.0.2", |     "gulp": "^4.0.2", | ||||||
|     "gulp-uglify": "^3.0.2", |  | ||||||
|     "gulp-clean-css": "^4.3.0", |     "gulp-clean-css": "^4.3.0", | ||||||
|     "gulp-concat": "^2.6.1", |     "gulp-concat": "^2.6.1", | ||||||
|     "gulp-replace": "^1.1.3", |  | ||||||
|     "gulp-rename": "^2.0.0", |  | ||||||
|     "gulp-header": "^2.0.9", |  | ||||||
|     "gulp-footer": "^2.1.0", |     "gulp-footer": "^2.1.0", | ||||||
|     "del": "^2.2.2", |     "gulp-header": "^2.0.9", | ||||||
|  |     "gulp-rename": "^2.0.0", | ||||||
|  |     "gulp-replace": "^1.1.3", | ||||||
|  |     "gulp-uglify": "^3.0.2", | ||||||
|     "minimist": "^1.2.5" |     "minimist": "^1.2.5" | ||||||
|   }, |   }, | ||||||
|   "bugs": { |   "bugs": { | ||||||
|     "url": "https://gitee.com/sentsin/layui/issues" |     "url": "https://gitee.com/sentsin/layui/issues" | ||||||
|   }, |   }, | ||||||
|   "dependencies": {}, |   "dependencies": { | ||||||
|  |     "layui": "file:" | ||||||
|  |   }, | ||||||
|   "keywords": [ |   "keywords": [ | ||||||
|     "layui", |     "layui", | ||||||
|     "ui", |     "ui", | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|     ,cache: {} //数据缓存
 |     ,cache: {} //数据缓存
 | ||||||
|     ,allData:[] // 全部数据
 |     ,allData:[] // 全部数据
 | ||||||
|     ,index: layui.table ? (layui.table.index + 10000) : 0 |     ,index: layui.table ? (layui.table.index + 10000) : 0 | ||||||
|      |     ,winResiz:[] | ||||||
|     //设置全局项
 |     //设置全局项
 | ||||||
|     ,set: function(options){ |     ,set: function(options){ | ||||||
|       var that = this; |       var that = this; | ||||||
| @ -365,6 +365,8 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|     that.key = options.id || options.index; |     that.key = options.id || options.index; | ||||||
|     table.allData[that.key] = options.data |     table.allData[that.key] = options.data | ||||||
|      |      | ||||||
|  |     // 添加到全局渲染中,为了全局resize防止内存泄漏 
 | ||||||
|  |     table.winResiz[that.key] = that | ||||||
|     //生成替代元素
 |     //生成替代元素
 | ||||||
|     hasRender[0] && hasRender.remove(); //如果已经渲染,则Rerender
 |     hasRender[0] && hasRender.remove(); //如果已经渲染,则Rerender
 | ||||||
|     othis.after(reElem); |     othis.after(reElem); | ||||||
| @ -1650,6 +1652,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|           } |           } | ||||||
|         } |         } | ||||||
|         that.config.onColumnsWidth && that.config.onColumnsWidth(that.config.cols) |         that.config.onColumnsWidth && that.config.onColumnsWidth(that.config.cols) | ||||||
|  |         if (layui.soulTable) { layui.soulTable.fixTableRemember(that.config, dict) } //拖动列宽 记忆开启
 | ||||||
|         dict = {}; |         dict = {}; | ||||||
|         _BODY.css('cursor', ''); |         _BODY.css('cursor', ''); | ||||||
|         that.scrollPatch(); |         that.scrollPatch(); | ||||||
| @ -1986,10 +1989,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|       layer.close(that.tipsIndex); |       layer.close(that.tipsIndex); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     //自适应
 |     // //自适应 
 | ||||||
|     _WIN.on('resize', function(){ |     // _WIN.on('resize', function(){
 | ||||||
|       that.resize(); |     //   that.resize();
 | ||||||
|     }); |     // });
 | ||||||
|   }; |   }; | ||||||
|    |    | ||||||
|   //一次性事件
 |   //一次性事件
 | ||||||
| @ -2366,6 +2369,17 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){ | |||||||
|   $(function(){ |   $(function(){ | ||||||
|     table.init(); |     table.init(); | ||||||
|   }); |   }); | ||||||
|  | 
 | ||||||
|  |   $(function (){ | ||||||
|  |      //自适应
 | ||||||
|  |     _WIN.on('resize', function(){ | ||||||
|  |       // that.resize();
 | ||||||
|  |       for(let i in table.winResiz){ | ||||||
|  |         table.winResiz[i].resize() | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
|  | 
 | ||||||
|    |    | ||||||
|   exports(MOD_NAME, table); |   exports(MOD_NAME, table); | ||||||
| }); | }); | ||||||
|  | |||||||
| @ -210,6 +210,7 @@ layui.define('layer' , function(exports){ | |||||||
|           ,contentType: false  |           ,contentType: false  | ||||||
|           ,processData: false |           ,processData: false | ||||||
|           ,dataType: 'json' |           ,dataType: 'json' | ||||||
|  |           ,async: false | ||||||
|           ,headers: options.headers || {} |           ,headers: options.headers || {} | ||||||
|           //成功回调
 |           //成功回调
 | ||||||
|           ,success: function(res){ |           ,success: function(res){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user