标签: image-caching

在iOS中缓存远程图像文件的位置?

我打算从服务器缓存图像,并将其显示为我的应用程序中的排序幻灯片放映.我将异步加载图像.

我有两个选择:

  1. 将图像缓存为文件并在必要时使用它.
  2. 将图像对象缓存在内存中并在必要时使用它,并在应用程序退出时将其写入文件.

哪一个会更好?

如果您对缓存图像有任何建议,请告诉我.

iphone uiimage image-caching ipad ios

9
推荐指数
1
解决办法
5283
查看次数

Android Image缓存 - 怎么样?

我认为之前有人询问过,但仍有一些我无法理解的事情.

我尝试了两种不同的方法:

  1. 将所有图像保存在内存中,当某个限制开始超过时,开始删除它们
  2. 让Android使用SoftReferences修复此问题

在2.它只是清理它们有时第二次我分配它们!而且我没有分配太多 - 30-40张50x50像素的图像.

所以我坚持一个.问题是限制是什么?

  1. 我可以从设备上获得一些可靠的信息吗?我还剩下多少位图内存?我做了一些研究,观察DDMS值,它只是占用了越来越多的空间(如果我不清理),直到它爆炸.有一刻只剩下200K了,接下来系统再提供2M ......
  2. 我目前正在使用一些基于设备模型或屏幕大小的启发式决策.从长远来看,我认为这是死路一条.在某些手机上有内存异常,在其他手机上完全免费.
  3. 有第三种解决方案,正确吗?

android image-caching

8
推荐指数
1
解决办法
3097
查看次数

如何使用Kingfisher仅在磁盘中缓存图像?

我正在使用Kingfisher库来下载和缓存图像.我在实施中面临一些问题:

  1. 图像是否缓存在内存和磁盘中?

  2. 是否有任何规定只在磁盘上缓存图像?

我已经阅读了多篇关于此的帖子,但找不到任何解决方案.

caching image-caching ios swift kingfisher

8
推荐指数
3
解决办法
3909
查看次数

使用image.complete来查找图像是否缓存在chrome上?

我一直试图找出一个外部图像是否在js上缓存在浏览器上,这是我到目前为止的代码:

<html>
    <head></head>
    <body>

    <script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

    <script>

        function cached( url ) {
            $("#imgx").attr({"src":url});
            if(document.getElementById("imgx").complete) {
                return true;
            } else {
                if( document.getElementById("imgx").width > 0 ) return true;
            }

            return false;
        }

    </script>

    <img id="imgx" src=""  />

    <script>

        $(document).ready(function(){
            alert(cached("http://www.google.com/images/srpr/nav_logo80.png"));
        });

    </script>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

它在firefox上完美运行,但它总是在chrome上返回false.

有人知道如何使用chrome吗?

javascript jquery image cross-browser image-caching

7
推荐指数
1
解决办法
1万
查看次数

如何设置iOS缓存和磁盘存储大小以及如何在应用终止后从磁盘存储恢复缓存?

我已经问过什么时候从urlcache的内存和磁盘中删除了什么?

现在我还有一些后续问题:

  1. 内存缓存受iPhone的内存(通常为2Gb)限制.但磁盘持久性受到64Gb或128Gb的限制.那是对的吗?

  2. 持久性比内存存储更有意义吗?如果您不想拥有较高的内存占用(并且不希望应用程序从其挂起状态终止),即允许从磁盘存储中恢复缓存然后返回持久结果,它是否有用?

控制点击后,URLCache.shared我看到以下评论:

  • 内存容量:4兆字节(4*1024*1024字节)
  • 磁盘容量:20兆字节(20*1024*1024字节)
  • 磁盘路径:(user home directory)/Library/Caches/(application bundle id)

没有特殊缓存要求或约束的用户应该可以找到可接受的默认共享缓存实例.如果此默认共享缓存实例不可接受,+setSharedURLCache: 则可以调用NSURLCache此实例以设置从此方法返回的其他实例.调用者应该注意确保在没有其他调用者具有对先前设置的共享URL缓存的引用时调用setter.这是为了防止存储缓存数据变得意外无法恢复.

所以我认为我的理由是正确的.


读取/写入/恢复缓存的整个过程如何工作?

  1. 我的意思是当我第一次发出网络请求时,整个响应/错误/数据是否被写入 /存储在缓存中然后进入持久性?

  2. 下次如果我想读取它然后它首先从缓存开始然后如果响应不是陈旧/过期然后它将返回它.磁盘存储没有任何改变.

    如果它已过期,那么它将发出新请求,并且只有在获得成功响应后,它才会清除内存和磁盘的响应,并将新响应写入缓存和磁盘.如果新请求失败,那么它将不会被清除,而是只保留过期/过期数据,所以如果我们想要(加载过期响应)它将从那里加载?

  3. 当应用程序终止时,内存将被刷新.除非设备内存不足或已达到大小限制,否则磁盘存储将保持不变.在下次启动应用程序时,内存会将磁盘存储中的任何内容重新加载到缓存中.

    此缓存恢复将开始加载已存储的最新数据,然后移动到较旧的数据,直到它达到其大小限制或仅到达存储在磁盘上的项目的末尾.对?

  4. 如果在正常的一天,用户在典型的1小时会话中所做的联网数量约为30mb,那么我应该将我的缓存大小设置为20mb和30mb的磁盘存储吗?如果我有图像怎么办?我听说图像的存储方式不同,因为1mb图像可能需要10mb的大小.那我应该怎么做呢?

我问这一切是因为我想改善应用程序中的缓存体验并提高我的整体理解,所以我不会过多地增加应用程序的内存使用量*因此它不会从内存中刷新内存暂停状态由于我的应用程序高内存使用或其他需要的应用程序.


*:我们的一些网络请求将下载缩略图,因此当我增加缓存大小限制时,我需要考虑周到.

memory caching image-caching nsurlcache ios

7
推荐指数
1
解决办法
739
查看次数

在缓存的图像上触发load()事件的更好方法是什么?

我正在编写一个脚本,div在激活指向它的缩略图之前等待内容加载到隐藏中.

$('#preload img:first-child')
.bind('load',activateThumb)
.each(function(){
    if(this.complete || this.complete===undefined) $(this).load()});
Run Code Online (Sandbox Code Playgroud)

each部件触发load()缓存中图像的事件.我必须添加它才能使页面在某些浏览器中工作,而这些浏览器不会触发load()缓存的图像.

这里还有一个插件本质上做同样的事情,通过触发加载事件而不是"手动"但通过重置src属性.

从编程的角度来看,这是更优雅的解决方案吗?

jquery jquery-plugins image-caching

6
推荐指数
1
解决办法
968
查看次数

如何从Nuke for Swift缓存中删除图像

我一直在尝试从https://github.com/kean/Nuke尝试用于图像缓存的Nuke框架,在整个文档中,我无法弄清楚如何从缓存(磁盘和内存)中删除图像,我可以找到缓存类“ removeAll”中的一种方法,用于从缓存中删除图像,但是我有两个问题:

  1. 如何删除单张图片?
  2. 如何从磁盘以及内存缓存中删除所有映像?

在尝试之前,我没有尝试过要检查文档的任何内容,所以投反对票是因为我没有附加代码是不合理的。

image-caching ios swift

6
推荐指数
1
解决办法
965
查看次数

React Native - 无需缓存即可快速加载图像的更好方法

我正在使用FastImage缓存图像,并且在按预期缓存数据后加载图像的速度非常快。但是我的服务器每次都为相同的图像生成新的 uri(s3 预签名 url)。

因此,FastImage 将其视为新图像并尝试每次下载,这会影响我的应用程序性能。

我的问题是,有没有什么乐观的方法可以在不缓存的情况下尽可能快地渲染图像?

image amazon-s3 image-caching pre-signed-url react-native

6
推荐指数
1
解决办法
947
查看次数

IE7不通过SSL缓存CSS图像

我正在使用Internet Explorer 的WebDevHelper工具栏来解决我的SSL站点上的HTTP请求/往返问题,并注意到IE重新下载我的CSS:每次触发时悬停图像.这导致了大量的往返.

我怎样才能防止这种情况发生?

编辑: 所有静态内容都使用缓存控制:public,因此图像,javascript等在Firefox和Chrome中缓存.这个问题是IE特有的.

css ssl image-caching

5
推荐指数
1
解决办法
2628
查看次数

图像被缓存并吃掉了我的堆空间

这个问题是我之前提出的问题答案的结果.

我被要求使用Eclipse MAT来调查吃掉堆的东西.以下是我的观察(热门消费者):

class sun.awt.SunToolkit                                 333.7 MB
com.tennisearth.service.impl.CacheManagerServiceImpl     136 MB
org.apache.jasper.servlet.JspServlet                     91.5 MB
Run Code Online (Sandbox Code Playgroud)

我已经解决了这个问题CacheManageServiceImpl,但需要帮助SunToolkit.

下面是创建Image对象的代码(内部使用SunToolkit.imgCache)

Image img = new ImageIcon(imagePath).getImage();
int imageWidth = img.getWidth(null);
int imageHeight = img.getHeight(null);
Run Code Online (Sandbox Code Playgroud)

Plz注意,仅创建Image对象以获取图像的宽度/高度,稍后在某些逻辑中需要该宽度/高度.

有没有办法禁用SunToolkit图像缓存?更好的是,有没有办法清除这个缓存?或者有更好的方法可以检索这些信息吗?

BTW供您参考,我使用下面的命令来运行jboss(请注意堆大小参数):

java -Dprogram.name=run.sh -server -Xms256m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=256m -verbose:gc -Xloggc:/data1/logs/jboss/GC.log -XX:+HeapDumpOnOutOfMemoryError -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dorg.apache.catalina.STRICT_SERVLET_COMPLIANCE=false -Djava.net.preferIPv4Stack=true -Djava.library.path=/usr/local/java/jboss-4.2.2.GA/bin/native -Djava.endorsed.dirs=/usr/local/java/jboss-4.2.2.GA/lib/endorsed -classpath /usr/local/java/jboss-4.2.2.GA/bin/run.jar:/usr/local/java/jdk1.6.0_06/lib/tools.jar org.jboss.Main -c default -b <IP_ADDRESS> -Djboss.messaging.ServerPeerID=1
Run Code Online (Sandbox Code Playgroud)

萨米特

java caching image image-caching

5
推荐指数
1
解决办法
1463
查看次数