Ipad 3和Iphone 4s的速度不够快

AngularJS/Cordova/Phonegap Ipad 3 and Iphone 4s not fast enough?

本文关键字:速度 不够 4s Iphone Ipad      更新时间:2023-09-26

我有一个AngularJS应用(angular v1.2.19),我使用Cordova/PhoneGap将其转换为iOS应用。
然而,似乎resolve属性(见下文)正在考虑,但相关页面在承诺被解决之前显示,导致一些丑陋的闪烁。
在这种情况下闪烁是:表单只显示字段集和图例+按钮1秒,然后显示整个数据(输入等)。

 $routeProvider
        .when('/page/meetings/123/edit',
        {
          templateUrl: "edit.html",
          controller: "EditCtrl"
          resolve: {
              activities: ['Activities', function (Activities) {
                    return Activities.getList().then(function(response) {
                        return response.data;
                    });
                }]
            }
          }
        }
      )
//page is displayed before activities are fully loaded.

在Cordova中是否存在关于resolve属性的已知bug ?或者我应该添加一个构型?

它在浏览器中工作得很好,但在iOS应用中,我没有设法让Angular在渲染页面之前解析承诺。
我不明白为什么这只发生在iOS应用程序上,而不是网页浏览器上。当我删除resolve部分,页面显示没有闪烁,虽然我没有活动填充。

可能只是性能原因?事实上,我测试了路径/page/meetings/123/edit在我的Ipad 3(命名为"新Ipad")从一个页面,没有很多的内容,它显示页面后承诺被解决=>好。
奇怪的是,当我把同样的链接放在一个沉重的页面上,列出了几个项目,目标页面(编辑页面)仍然闪烁,大约1秒没有显示表单,然后显示整个。

更奇怪的是,Iphone 4s上完全相同的代码涉及闪烁,无论/page/meetings/123/edit链接在哪里(重或轻页面)。

相反,iPhone 4s和Ipad上的网页移动版本(Safari)是完美的。真的不知道为什么。

After some…经过几个小时的寻找,我找到了原因。

在编辑页的控制器中,我最初这样做:

$anchorScroll(); //scrolling to the top

似乎与元素的显示有冲突。
这就解释了为什么当我从一个需要滚动的页面(比如列表页面中的20个项目)转过来时,冲突就出现了。

所以我选择的解决方案是这样做,为了用最少的时间延迟滚动:

$timeout(
    function(){
       $anchorScroll();
    },
0); 

整个现在可以很好地与PhoneGap/Cordova for iOS应用程序。