我拥有一个AngularJs应用程序,我通过Cordova转换为本机应用程序。
整个在iOS(iphone)上工作,但我只是注意到如果我把应用程序放在后台,然后重新打开/恢复它,应用程序有时候会冻结"大约5秒然后工作。 没有滚动,没有点击事件,持续5秒。
这有什么原因吗?怎么避免呢?这非常令人沮丧。
我发现导致问题的代码:
document.addEventListener("resume", function () {
$rootScope.$broadcast('retrieveAllNotifications', null);
}, false);
所以,根据文件:
恢复事件触发时的alert()等交互式功能 需要包含在超时值为零的setTimeout调用中, 否则应用程序将挂起。 e.g。
所以我转变为:
document.addEventListener("resume", function () {
$timeout(function () {
$rootScope.$broadcast('retrieveAllNotifications', null);
}, 0);
}, false);
但它仍然悬而未决。
然而,当我删除广播时,它可以正常工作。
如何解决?例如,将超时时间增加到1秒?
答案 0 :(得分:0)
实际上,我注意到我检索了超过500个以HTML格式显示(但隐藏)的通知。
我所做的就是删除大量通知,我注意到不再冻结。
对于phonegap应用而言,它太重了,不会一次显示500个通知。