起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3450|回复: 8

[处理中3] 有关wex5控制台卡死的问题重现

[复制链接]

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
发表于 2017-12-11 14:13:40 | 显示全部楼层 |阅读模式
之前看到帖子http://bbs.wex5.com/forum.php?mod=viewthread&tid=181577 我曾经顶过贴,但结果貌似没有得到官方的重现,后来我本人工作较忙没去回贴,这问题就不了了之了。
今天突然有空,就想起完善一下原贴中的例子,以实际重现该问题,毕竟该问题对开发造成很大困扰,希望官方重视,尽快修复。
重现例子已作了修正,直接下载运行附件就可以重现问题。以下是问题重现的截图。
需再次声明以下几点:
1、问题重现的必要条件以下两点
     I、必须F12打开控制台;
     II、wex5的版本号必须是3.5+,包括3.7;

2、当满足以上两个条件,点击页面的按钮,就会触发getData方法,之后浏览器就会变得十分的卡,从附件截图00.png可以看出,遍历短短的13行data数据用了足足10分钟的时间,稍有不慎,浏览器就会出现停止响应,如图11.png,这就是所谓的“卡死”

3、相同的程序,相同的电脑配置和环境,如果不F12打开控制台,或者在遍历循环里屏蔽console.log,是不会出现这种卡死的,如图22.png,同样是wex5 3.7环境下,但没开控制台跑,等跑完再打开控制台的结果,可以看到是瞬间完成,无任何卡死的。

4、可以肯定这个不是data.each遍历的性能问题,因为我在项目里面经常碰到这样的卡死,如果data.each在13条数据就这么简单的出现性能卡死,是没理由无人发现的,我个人推断是console.log被频繁输出导致的问题,正如上述第3点提到的,屏蔽了循环中的console.log,就不会卡死了。在实际开发中,为了方便,这种console.log打印是必须的,希望官方尽快解决给出补丁。

5、本人在同一台电脑上,有wex5 3.4/3.6/3.7几个版本,经用相同代码去实验,只有3.4不会出现卡死,3.6和3.7都会出现卡死,并且本人曾经在ios版本下的3.6也试过,同样是会卡死的。并且,该问题在不同的电脑上都可以重现。
22.png
11.png
00.png

luntan.rar

19.86 KB, 下载次数: 94

发表于 2017-12-11 14:44:22 | 显示全部楼层
本地测试真的没问题!
我这里用最新的 3.8测试的!  一会儿换3.7试试看

本地测试真没问题啊! 你是什么浏览器,平台自带的chrome 浏览器会这样吗?

试试别人的电脑访问你的服务会这样吗???


qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2017-12-11 15:09:30 | 显示全部楼层
用平台自带的chrome。跟chrome应该也没关系,因为我试过用3.4
的chome访问3.6的程序,照样卡死,这个问题不是3.7才出现的,以前我换3.6的时候就出现了,苦恼了好久,最后项目被迫只能在3.4下面开发,3.6下面打包,麻烦得要死。多台电脑都试过了,windows的机器试过,mac的机器也试过,都是一样的问题。
回复 支持 反对

使用道具 举报

发表于 2017-12-11 15:13:19 | 显示全部楼层
zhch501 发表于 2017-12-11 15:09
用平台自带的chrome。跟chrome应该也没关系,因为我试过用3.4
的chome访问3.6的程序,照样卡死,这个问题不 ...

那就奇怪了!你的demo我这里 3.7  3.8测试都正常!很快的!不会卡住的!
远程看下吧~!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

15

主题

42

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
QQ
发表于 2017-12-17 22:13:18 | 显示全部楼层
官方一直没有重新这个问题吧。
这里的 console.log 最好打印复杂的对象。比如  
        Model.prototype.scrollView2ScrollEnd = function(event){
                console.log(event);
        };
注意:简单的数据不会卡,测试简单的无意义。
关注官方的解决方案。
回复 支持 反对

使用道具 举报

发表于 2017-12-18 13:24:01 | 显示全部楼层
liyi830 发表于 2017-12-17 22:13
官方一直没有重新这个问题吧。
这里的 console.log 最好打印复杂的对象。比如  
        Model.prototype.scrollVi ...

console.log 是浏览器底层API  打印复杂对象有可能存在js对象 格式转换的问题!所以耗时,不是x5可以解决的!
你可以百度搜下原因!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2017-12-18 14:07:57 | 显示全部楼层
这个问题官方已经远程到我机器上重现了。漏了一个前提条件,就是必须把浏览器调整成手机模式才会卡死。官方解析说row在3.6之后加入了很多东西,导致这个对象比较大,所以打印卡死,说是浏览器本身的问题。但无论怎么说,无法console log对象,对开发是十分不方便的,如果官方能提出解决办法就最好了。
回复 支持 反对

使用道具 举报

1

主题

11

帖子

97

积分

初级会员

Rank: 2

积分
97
QQ
发表于 2018-1-25 02:11:25 | 显示全部楼层
我也遇到过你说的这种情况,以前是没有问题,后来用3.7确实用console.log输出就会卡死。所以现在查看输出都用debugger了,是比较麻烦。
回复 支持 反对

使用道具 举报

1

主题

11

帖子

97

积分

初级会员

Rank: 2

积分
97
QQ
发表于 2018-1-25 02:11:49 | 显示全部楼层
zhch501 发表于 2017-12-18 14:07
这个问题官方已经远程到我机器上重现了。漏了一个前提条件,就是必须把浏览器调整成手机模式才会卡死。官方 ...

我也遇到过你说的这种情况,以前是没有问题,后来用3.7确实用console.log输出就会卡死。所以现在查看输出都用debugger了,是比较麻烦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-5-9 14:08 , Processed in 0.052379 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表