菜单

内部存款和储蓄器溢出的标题一举成功_AngularJS_脚本之家,view自动回弹bug应用方案_vue

2020年3月31日 - 澳门太阳娱乐手机登录

表现

本项目用的是angular4搭建,用动态组件的款型来彰显页面,在此以前境遇过因为内部存款和储蓄器溢出而诱致不可能aot的难题,

安装了scroll-top的scroll-view组件,在组件所在vue实例data爆发更动时会自动回弹到最上端

减轻方法:手动改写内部存款和储蓄器上限

解决方案

澳门太阳娱乐手机登录,改良目录: my-project/node_内部存款和储蓄器溢出的标题一举成功_AngularJS_脚本之家,view自动回弹bug应用方案_vue。modules/.bin 找到 ng.cmd :

打开 node_modules/mpvue/index.js, 在随性所欲地点增添以下五个办法

@IF EXIST "%~dp0node.exe" ( "%~dp0node.exe" --max_old_space_size=8192 "%~dp0..@angularclibinng" %*) ELSE ( @SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node --max_old_space_size=8192 "%~dp0..@angularclibinng" %*)
function calcDiff(holder, key, newObj, oldObj) { if (newObj === oldObj || newObj === undefined) { return } if (newObj == null || oldObj == null || typeof newObj !== typeof oldObj) { holder[key] = newObj } else if  && Array.isArray { if (newObj.length === oldObj.length) { for (var i = 0, len = newObj.length; i < len; ++i) { calcDiff(holder, key + '[' + i + ']', newObj[i], oldObj[i]) } } else { holder[key] = newObj } } else if (typeof newObj === 'object' && typeof oldObj === 'object') { var newKeys = Object.keys var oldKeys = Object.keys if (newKeys.length !== oldKeys.length) { holder[key] = newObj } else { var allKeysSet = Object.create for (var i = 0, len = newKeys.length; i < len; ++i) { allKeysSet[newKeys[i]] = true allKeysSet[oldKeys[i]] = true } if (Object.keys.length !== newKeys.length) { holder[key] = newObj } else { for (var i = 0, len = newKeys.length; i < len; ++i) { var k = newKeys[i] calcDiff(holder, key + '.' + k, newObj[k], oldObj[k]) } } } } else if  { holder[key] = newObj }}function diff { var keys = Object.keys var diffResult = {} for (var i = 0, len = keys.length; i < len; ++i) { var k = keys[i] var oldKeyPath = k.split var oldValue = oldObj[oldKeyPath[0]] for (var j = 1, jlen = oldKeyPath.length; j < jlen && oldValue !== undefined; ++j) { oldValue = oldValue[oldKeyPath[j]] } calcDiff(diffResult, k, newObj[k], oldValue) } return diffResult} 

改善目录: my-project/node_modules/.bin 找到 ngc.cmd :

2.找到 throttleSetData 修改为

@IF EXIST "%~dp0node.exe" ( "%~dp0node.exe" --max_old_space_size=8192 "%~dp0..._@angular_compiler-cli@4.0.1@@angularcompiler-clisrcmain.js" %*) ELSE ( @SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node --max_old_space_size=8192 "%~dp0..._@angular_compiler-cli@4.0.1@@angularcompiler-clisrcmain.js" %*)
var throttleSetData = throttle { page.setData);}, 50); 

有关到底是哪些原因促成的内部存储器溢出,还不精通,只是犹如下推断:

3.找到 updateDataToMP 方法, 将 throttleSetData 的调用格局改为

2)订阅数据未有灭亡占用内存,;

throttleSetData;

3)因为具有的零件都在贰个根目录下,招致急需编写翻译的机件过多?

瞩望官方早日修复,参照他事他说加以考察:

不经常还不知底只可以先用设置内部存款和储蓄器上限的格局来减轻,有大神的话望多多点拨;

接受脏检查优化每回换代数据时都会传导多量多少的标题, 化解删除回落,
列表忽然滚动到最上部等难点

再有二个主题材料即便用动态组件的格局,组件都在根目录下,会促成第叁次加载的时间过长。有痴心图谋请报告作者,哈哈

以上就是本文的全体内容,希望对大家的读书抱有助于,也意在大家多多照望脚本之家。

以上正是本文的全体内容,希望对大家的上学抱有利于,也期望咱们多多指教脚本之家。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图