【问题标题】:How do I fix laggy/choppy scrolling through images with Angular + Ionic?如何使用 Angular + Ionic 修复延迟/不连贯的图像滚动?
【发布时间】:2014-11-10 22:36:01
【问题描述】:

我正在使用 Phonegap、Ionic 和 Angular 构建 iOS 应用程序,并且遇到一个问题,当我将 ng-repeat 与 img src(或 ng-src)一起使用时,图像页面的滚动变得不可接受地抖动/ 滚动图像时滞后(您可以想象页面上的 Instagram 或类似 Facebook 的图像提要)。当我在 Safari 和 iPhone 上加载页面时,我似乎都遇到了这个问题。 Chrome似乎好多了,所以我可能是与Safari有关的问题?

我正在使用标准的离子含量标签。我的 ng-repeat 是

<div ng-repeat="post in myPosts track by $index">

如果我在 ng-repeat 中有以下代码,它可以正常工作并且滚动是完美的:

<img ng-src="https://s3.amazonaws.com/exampleS3Bucket/photos/somephoto.jpg">

但是,当我尝试使用 angular 为重复数组中的每个项目设置不同的图像时,我遇到了滞后问题:

<img ng-src="{{post.image.url}}" >

我尝试过使用各种 ion-content 滚动设置和 Bindonce,但到目前为止没有任何帮助。感谢您提供的任何帮助!

【问题讨论】:

    标签: angularjs safari ionic-framework


    【解决方案1】:

    您可以在 ion-content 标签中尝试overflow-scroll="true"。

    例子:

    <ion-content overflow-scroll="true">
    

    它给了我巨大的性能提升。

    【讨论】:

    • 老兄,你救了我的命,谢谢,我推荐这个解决方案。
    • 伙计们救了我....我正在使用 angular phonegap:重要的部分是我将它用于在 ng-repeat 作为 ng-src 内部的图像,我没有选择我在哪里我犯了错误。但我不知道一个 CSS 属性可以节省我最大的延迟
    • 看起来这样可以解决滞后问题并提高速度.....知道为什么它会起作用吗?这到底有什么改进?
    【解决方案2】:

    您应该看看 Ionic 的新 collection repeat feature,它可以帮助您提高大型列表的性能。 Here 你有一个广泛的代码示例。

    来自文档:

    <ion-content ng-controller="ContentCtrl">
      <div class="list">
        <div class="item my-item"
          collection-repeat="item in items"
          collection-item-width="'100%'"
          collection-item-height="getItemHeight(item, $index)"
          ng-style="{height: getItemHeight(item, $index)}">
          {{item}}
        </div>
      </div>
    </div>
    

    【讨论】:

    • 您还应该确保您没有要求设备将图像缩小太多....您的图像真的是缩略图吗?
    • Clawish,我不想使用它,因为 collection repeat 有一堆关于 css 等的要求,这将涉及重构代码,我不相信这是问题,因为我看到了当只有几张图片和帖子时出现故障/延迟滚动(远不及 100,更不用说 1000)。不过,我会在有时间的时候尝试一下... Aaron 我会尝试您的建议并让您知道。这些图像不是缩略图,它们是占据全屏的图像。缩小比例会导致滚动故障吗?
    • 是的,图像大小调整对性能有很大影响。特别是在 4/4s 等较旧的 iPhone 上。如果可能,请按照滚动视图所需的精确尺寸复制图像以获得最佳性能
    • 知道了,谢谢 Jamie 和 Aaron,我认为这是主要问题。不知道如何投票给你的答案,如果有办法让我知道!
    • 如何调整 Cordova 应用程序中的图像大小?或者您是否在运行前(在图像编辑程序中)调整了它们的大小?
    猜你喜欢
    • 1970-01-01
    • 2019-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 2013-05-30
    • 2020-04-14
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多