本机脚本加载图像

dpdragnev

这是我的场景:在主视图上,我正在加载项目列表。每个项目都有一个imageURL属性。我将Image组件绑定到ImageURL属性。一切正常,但是在加载Image组件的过程中,图像需要花费额外的一两秒钟来加载。加载图像后,将正确显示“图像”组件。在渲染图像时,这会在页面上产生不希望的偏移。

相同的图像将在其他2个视图上渲染。

处理这种情况的最佳实践是什么?我尝试加载基数为64的字符串,而不是图像URL,该方法可以正常工作,但它显着减慢了初始视图的加载速度。

在视图之间导航时,如何预取图像并重新使用它们?我正在查看似乎可以解决确切场景的图像缓存模块,但是文档非常模糊,是我发现的唯一示例(https://github.com/telerik/nativescript-sample-cuteness/blob/master /nativescript-sample-cuteness/app/reddit-app-view-model.js)并没有真正解决相同的情况。如果我正确理解了代码,则更多是关于虚拟滚动。就我而言,我只有2-3个项目,因此滚动并不是一个真正的问题。

我将不胜感激。

谢谢你。

dpdragnev

因此,在进行了一些研究之后,我想出了一个对我有用的解决方案。这是我所做的:

  • 应用启动时,我创建了一个包含可观察对象列表的全局变量
  • 然后我进行了http调用,以获取所有对象并将它们加载到全局变量中

在视图中,我将图像显示为(图像是Repeater项目模板的一部分):

<Image loaded="imageLoaded" />

在js文件中,我将imageLoaded事件处理为:

var imageSource = require("image-source");

function imageLoaded(args) {
    var img = args.object;
    var bc = img.bindingContext;

    if (bc.Loaded) {
        img.imageSource = bc.ImageSource;
    } else {
        imageSource.fromUrl(bc.ImageURL).then(function (iSource) {
            img.imageSource = iSource;
            bc.set('ImageSource', iSource);
            bc.set('Loaded', true);
        });
    }
}

因此,在初始加载后,我将imageSource保存为全局变量的一部分,在其他页面上,我从那里获得了它,并且从URL加载它的后备是该图像源不可用。

我知道这可能会引起我对用于存储图像的内存量的担忧,但是由于我的情况,我所谈论的图像数量不得超过2-3个,因此我认为这种方法不会引起任何内存问题。

我很想听听任何有关如何使这种方法更有效或者是否有更好的方法的反馈。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缓慢的图像加载本机脚本

来自分类Dev

反应本机图像加载太慢

来自分类Dev

反应本机相对图像路径加载

来自分类Dev

反应本机相对图像路径加载

来自分类Dev

jQuery-预加载图像(使用jQuery /本机JavaScript / CSS)

来自分类Dev

未在<Image>中加载的本地图像反应本机

来自分类Dev

从uri加载图像时如何在本机中放置gif

来自分类Dev

找不到预加载的图像(脚本)

来自分类Dev

从扩展 ( CSP ) 加载图像的内容脚本

来自分类Dev

在图像之前加载渲染阻止脚本

来自分类Dev

如何通过动作脚本3.0中的URL加载图像

来自分类Dev

在脚本运行时如何显示加载图像?

来自分类Dev

从文件夹bash脚本Ubuntu加载图像文件

来自分类Dev

没有内联脚本处理图像加载错误

来自分类Dev

在脚本运行时如何显示加载图像?

来自分类Dev

JavaScript自动加载图像脚本不起作用

来自分类Dev

用于在网页中按需加载图像,视频的脚本

来自分类Dev

图像旋转脚本在AJAX加载时中断,开始旋转太快

来自分类Dev

本机脚本:无法创建应用程序...无法加载模块:... app / main.js

来自分类Dev

每次加载页面时运行一个Js脚本机器人

来自分类Dev

本机脚本addSubview

来自分类Dev

无法安装本机脚本

来自分类Dev

本机脚本布局

来自分类Dev

重新加载页面时,在脚本之前加载图像,可能会产生FOUC效果

来自分类Dev

脚本加载脚本广告

来自分类Dev

laravel访问本机php脚本

来自分类Dev

删除按钮边框-本机脚本

来自分类Dev

laravel访问本机php脚本

来自分类Dev

在本机脚本中使用querySelector;