【发布时间】:2017-05-02 17:19:06
【问题描述】:
我有超过 12k 个图像,大部分是 10x10 大小的转换为 json 数组中的 base64, 我在 json 和 x,y 坐标中有图像的大小,我想在屏幕上显示图像, json看起来像这样
[{"id":"1","width":"10","height":"10","image":"iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAABFElEQVQYlTWNzUvCcByHP9+x1c9kMv3Jei8J\/QMibHQKSvrjoqCTV2\/dugcdY5CXFaH04hz4lhrl\/G3lVgPXQXuODw88dH33sJYqAPCpywmfMQBwwu90481rUBDEMcOMBAAgAPwo1hVy3W8ZCCkEAMYYgAmCr2ieR2ogj12xsro86A8BITxhOR0AmUz2mXxqDiQpq79HsbuYPjs\/tZzOcenItIPyZaWY0jeLJdlsCQDtUW1r74Abh2ZLeLbnOUlO2M1rdFG9Xegm57Of5usHKxjaSX6fq8q99UjlK2tnXQIw4duzqD2qNarjip+APZHrvV69N\/Md\/FMwtJuUntZzZD69AEjrOQBcVVSFKAwZmwJLg\/7wD2cKcW+hz09jAAAAAElFTkSuQmCC","title":"Sovereign Grace Ministries","url":"http:\/\/www.sovereigngraceministries.org\/","order_id":"6106","x":"0","y":"0"}....
现在我在 Ionic1 AngularJS 移动应用程序上显示这些图像
ng-repeat 看起来像这样
<div id="wrapper">
<div ng-click="showModal({{ad.order_id}})" ng-repeat="ad in mainBillboard" style="position:absolute;cursor:pointer;background-image: url(data:image/png;base64,{{ad.image}});width:{{ad.width}}px;height:{{ad.height}}px;top:{{ad.y}}px;left:{{ad.x}}px"></div>
</div>
我使用 base64 快速加载对我有用的图像,#wrapper 位置设置为相对,现在结果如下所示
这是一个小屏幕截图,仅供参考
问题是,在 np-repeat 期间,即使屏幕上的加载器冻结了几秒钟,直到 UI 得到更新,我想要的只是加载器继续运行直到 ng-repeat 完成
我发现 ng-repeat 有类似的问题,但似乎没有什么能解决我的问题
【问题讨论】:
-
为什么要一次渲染 12k 图像?使用分页、延迟加载或虚拟滚动。
-
这就是我发布小屏幕截图的原因,它是由多张图片组成的广告牌
标签: javascript angularjs ionic-framework angularjs-ng-repeat ng-repeat