gortonlau
gortonlau
  • 发布:2014-11-18 22:18
  • 更新:2018-09-11 13:53
  • 阅读:7167

mui.init方法设置 preloadlimit 当数字较大的时候控制台输出Uncaught RangeError: Maximum call stack size exceeded.

分类:MUI
        var limit = 13,  
            count = 0;  
        mui.init({  
            preloadLimit: limit, //同时并存的预加载窗口数量  
            swipeBack: false,  
        });  
        (function($) {  
            $.plusReady(function() {  
                //初始化一级列表的预加载  
                $('#list>.mui-table-view-cell', document.body).each(function() {  
                    //只预加载一级列表,二级列表在其展开时再预加载;  
                    if (!this.classList.contains('mui-collapse')) {  
                        var url = this.querySelector('a').getAttribute("href");  
                        //预加载,默认使用url作为其id  
                        $.preload({  
                            url: url,  
                        });  
                        console.log(url);  
                        if (++count >= limit) {  
                            return false;  
                        }  
                    }  
                })  

当设置limit数字稍微大一点,控制台就会输出 Uncaught RangeError: Maximum call stack size exceeded. 设置成13 都不可以。然后当点击列表进入另一个页面以后,无法返回到主列表,控制台输出 Uncaught TypeError: Cannot call method 'parent' of null at js/mui.min.js:6

2014-11-18 22:18 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

把mui.min.js换成mui.js然后测试,看看具体哪一行出错了。

这个错误应该是js里边某个类似于递归的调用死循环了。

  • gortonlau (作者)

    问题出在$.preload({url: url,});把这一行注释掉就不出错,难道多次调用preload会导致内存不足导致的?之前尝试替换mui.js ,可是控制台不会输出具体是哪一行错误,只报错。

    2014-11-19 02:00

  • gortonlau (作者)

    并没有发现啥地方递归调用造成的死循环啊,我是用hbuilder新建的mui的模版,打开list.html以后改了下limit变量的值然后调试的时候就输出那个错误,点来列表的某项以后进去了也回不到主页面。

    2014-11-19 11:34

  • gortonlau (作者)

    把preload方法替换成plus.webview.create照样会有这个错误,这说明webview超过十几个左右的时候就一定会有这个错误。莫非创建webview的过程中很消耗javascript的内存才这样的?

    2014-11-19 11:42

  • DCloud_UNI_FXY

    看你贴出来的代码。似乎你的Hbuilder不是最新的吧。最新的Hbuilder带的mui模板的代码应该不是这个了。

    2014-11-19 11:47

  • gortonlau (作者)

    回复 DCloud_UNI_FXY:刚更新的

    2014-11-19 13:02

gortonlau

gortonlau (作者)

附件ui.zip 里面的list.html修改了 limit = 15 ,手机调试的时候控制台会输出
Uncaught RangeError: Maximum call stack size exceeded.

DCloud_UNI_FXY

DCloud_UNI_FXY

我使用你上传的ui.zip然后真机联调,没发现有错误,打开页面也能正常后退。

更新完hbuilder后,重新新建一个mui工程。然后再测试

asdfasdf23r

asdfasdf23r

无语了 报 Uncaught RangeError: Maximum call stack size exceeded.

  • asdfasdf23r

    解决了,重新安装一遍就OK了

    2015-09-13 18:45

VanJay

VanJay

各位好,这个坑也把我坑了,解决办法:所有的数字调用 toStrig()

  • p***@techarts.com.cn

    大哥,能说详细点儿么。。。我被坑了半天还没爬出来

    2017-04-12 15:37

  • gzg

    大侠 能不能说得具体点呢, 我也遇到同样的问题了

    2018-09-11 13:54

gzg

gzg - 努力生活的IT男

大侠 能不能说得具体点呢, 我也遇到同样的问题了

该问题目前已经被锁定, 无法添加新回复