现象
今天客户反映,flex后台系统在某个功能弹出页面的时候会出现浏览器无响应,卡死的现象。
原因
debug调试没有追踪到任何错误,并不是每次页面都会报错,只有弹出框动态生成了TextArea(多行文本编辑器组件)的时候才会出现浏览器卡死的现象。
搜索问题找到问题原因:原文链接,引用如下
TextArea会根据text的长度去计算是否需要竖直滚动条或者横向滚动条,而我给的那段文本的长度恰好可能只是处于一个奇妙的临界值,导致Flex陷入了无休止的计算中。。。也可以说是Flex的半个bug了。。
那怎么解决呢,很简单,我们将横向滚动条屏蔽掉就好了。
解决
① 直接修改组件mxml语法
<s:TextArea horizontalScrollPolicy = "off" />
② 修改默认样式
s|TextArea{ horizontalScrollPolicy:off; }