排查Mac中的Finder无限卡住的问题

某个周末,Mac突然抽风。Finder卡住,鼠标变成了风火轮一直在转。除了Finder以外的其它程序可以打开勉强使用,但那些程序打开没多久也会卡住。用活动监视器也无法让Finder强制退出;用命令行killall杀掉Finder进程也没用,它马上就会重启然后继续卡住。重启系统也没用。于是Finder就一直这样处于未响应状态,进而导致整个系统卡死:

继续阅读排查Mac中的Finder无限卡住的问题

Ionic中不合理的view层级导致afterEnter没有被调用

在公司的ionic项目中我们定义了如下状态:

其中views里面的root是在index.html里定义的ion-nav-view:

并且ABCtrl和ACDCtrl的代码中都注册监听了afterEnter事件。

按理说从状态A.B跳转到状态A.C.D时,ACDCtrl里的afterEnter会被执行,可实际运行的时候却没有。但是从E跳转到A.C.D则没有问题,ACDCtrl里的afterEnter会如期被调用。从E跳到A.B也没有问题,ABCtrl里的afterEnter也会执行。

公司项目的ionic lib版本是1.3.1:

本文末尾附上了我自己写的一个ionic小项目专用于重现这个问题。该项目的ionic lib版本是1.3.3:

于是我钻进了ionic的代码里研究了一番。

继续阅读Ionic中不合理的view层级导致afterEnter没有被调用