我正在使用Internet Explorer 的WebDevHelper工具栏来解决我的SSL站点上的HTTP请求/往返问题,并注意到IE重新下载我的CSS:每次触发时悬停图像.这导致了大量的往返.
我怎样才能防止这种情况发生?
编辑: 所有静态内容都使用缓存控制:public,因此图像,javascript等在Firefox和Chrome中缓存.这个问题是IE特有的.
我正在使用HJCachelib来缓存我的iPhone应用程序中的图像.
我收到以下错误,但不是所有图像,只是第一个(不)出现.
HJMOFileCache 无法将加载文件移动到就绪文件 /Users/joao__garcia/.../Library/Caches/imgcache/ready/http:__uni.....jpg
加载以下图像没有问题.有人知道发生了什么事吗?
我这样得到目录:
objMan = [[HJObjManager alloc] init];
NSString* cacheDirectory = [NSHomeDirectory() stringByAppendingString:@"/Library/Caches/imgcache"] ;
HJMOFileCache* fileCache = [[HJMOFileCache alloc] initWithRootPath:cacheDirectory];
objMan.fileCache = fileCache;
Run Code Online (Sandbox Code Playgroud)
然后:
managedImage = [[HJManagedImageV alloc] initWithFrame:CGRectMake(96, 88, 185, 167)];
managedImage.url = [NSURL URLWithString:[NSString stringWithFormat:@"http:...",video.thumb_video]];
NSLog(@"%@", managedImage.url);
[objMan manage:managedImage];
// [objMan performSelectorOnMainThread:@selector(manage:) withObject:managedImage waitUntilDone:YES];
NSLog(@"image %@", managedImage.image);
[managedImage sizeToFit];
playVideoViewButton.backgroundColor = [UIColor colorWithPatternImage:managedImage.image];
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,在该应用程序中,我需要永久下载和存储图像,直到手动删除它们(内存+磁盘)为止。这是必需的,因为应用程序需要能够脱机工作。我知道有AFNetworking和SDWebImage用于缓存图像,但我认为它们不允许永久缓存和手动删除。Afaik,当缓存过期时,它们会自动删除图像。
还有其他图书馆可以做这种事情吗?我试图为此编写一个类,但是它不是很稳定。我想最好不要重新发明轮子。
我在我的应用程序中实现缓存并在4.2.x设备上部署它时遇到问题.
当我在app cache目录中保存文件时,我无法读取它.我使用具有root权限的文件管理器来浏览缓存文件夹,并且文件正确地存在于我的缓存文件夹中,但是当我尝试读取它们时,获取文件未找到错误.
此问题仅与4.2 android版本有关.在4.1-一切正常
这是我用来编写文件的代码
public static void writeFile(Bitmap bmp, File f) {
if (bmp == null)
return;
FileOutputStream out = null;
try {
out = new FileOutputStream(f);
boolean res = bmp.compress(Bitmap.CompressFormat.PNG, 80, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
} catch (Exception ex) {
}
}
f.setReadable(true, false);
}
Run Code Online (Sandbox Code Playgroud)
这就是我构造文件对象的方式
File bitmapFile = new File(ImageManager.getInstance().getCacheDir(), key);
Run Code Online (Sandbox Code Playgroud)
这是如何获取缓存路径
if (Config.USE_INTERNAL_CACHE == false && sdState.equals(android.os.Environment.MEDIA_MOUNTED)) {
cacheDir = …Run Code Online (Sandbox Code Playgroud) 我有一个Angular应用程序,显示人物配置文件图像(从服务器加载),并有一个选项来更改它.
当应用程序第一次加载时,图像会正确显示.我调用Web服务来更改服务器上的映像.问题是甚至在更改远程服务器上的图像后,即使刷新页面,浏览器上的图像也不会反映更改.
我尝试使用meta标签禁用缓存,但它不适合我.
仅在删除浏览器缓存后,图像才会在浏览器上更改.我怎么解决这个问题?
基于注释的示例流程:
http://server_path/image_name.jpg 问题:未反映的更改图像.
我正在使用 Picasso 在我的 expandableListview 上加载图像,但似乎图像缓存不起作用。
我的列表中有一堆图片,每次向下和向上滚动时,我都会看到占位符。我之前使用过通用图像加载器,当我已经加载图像时它没有显示占位符。
这是我的适配器以及我如何使用它:
...
@Override
public View getChildView(int groupPosition, int childPosition, boolean b, View convertView, ViewGroup viewGroup) {
final ChildViewHolder viewHolder;
mChild = (ArrayList<Item>) mChildWrapper.get(groupPosition);
Item item = mChild.get(childPosition);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.my_child_row, null);
viewHolder = new ChildViewHolder();
viewHolder.myImage = (ImageView) convertView.findViewById(R.id.my_img);
convertView.setTag(viewHolder);
} else {
viewHolder = (ChildViewHolder) convertView.getTag();
}
Picasso.with(mContext)
.load(item.getUrl())
.placeholder(R.drawable.my_placeholder)
.into(viewHolder.myImage, new Callback() {
@Override
public void onSuccess() {
viewHolder.myImage.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
viewHolder.myImage.setVisibility(View.GONE);
} …Run Code Online (Sandbox Code Playgroud) 有没有办法通过指定使用的缓存键将图像加载到Picasso的图像缓存中?
如果不可能,请注意,我已做了必要的更改,但我不确定如何重建jar.任何重建毕加索的指示都非常感谢.
是否可以在AFNetworking中将映像缓存在磁盘上超过会话?例如一周或一个月.在我的项目,我用SDWebImage和AFNetworking,但前几天我发现,AFNetworking具有相同的功能SDWebImage,所以去除SDWebImage并写了这样的代码存储在磁盘上的图像:
对于ImageView
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[imageView setImageWithURLRequest:imageRequest placeholderImage:placeholderImage success:nil failure:nil];
Run Code Online (Sandbox Code Playgroud)
下载图片以备将来使用
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[[AFImageDownloader defaultInstance] downloadImageForURLRequest:imageRequest success:nil failure:nil];
Run Code Online (Sandbox Code Playgroud)
获取下载的图像
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
UIImage *image = [[AFImageDownloader defaultInstance].imageCache imageforRequest:imageRequest withAdditionalIdentifier:nil];
Run Code Online (Sandbox Code Playgroud)
但所有这些只在每个会话中工作,在我加载所有图像后我关闭互联网并重新启动我的应用程序,结果 - 缓存中没有图像.
另外我尝试添加这样的代码AppDelegate:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:2 * 1024 * 1024
diskCapacity:100 * 1024 * 1024
diskPath:nil];
[NSURLCache …Run Code Online (Sandbox Code Playgroud) 我正在使用从 Amazon S3 加载图像的 Android 应用程序。图像 URL 随令牌和过期密钥随机变化。因此,我无法缓存图像 Glide。
有任何方法可以将 Glide 缓存键设置为任何静态 ID(如图像 ID)而不是 url。
我附上了我的代码片段以从 AWS 加载图像
Glide.with(remoteGalleryAct).load(photoFinalImageURL)
.signature(new StringSignature(getImageUrl(photoFinalImageURL)))// remove AWS keys
.error(defaultNoImageDrawable)
.placeholder(defaultNoImageDrawable)
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(new ImageViewTarget<GlideDrawable>(photoHolder.photo) {
@Override
protected void setResource(GlideDrawable resource) {
}
@Override
public void onResourceReady(final GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
//super.onResourceReady(resource, glideAnimation);
view.setImageDrawable(resource);
}
});
Run Code Online (Sandbox Code Playgroud)
请建议我有什么方法可以在 Glide 中实现。
我将以下代码添加到我的asp.net-mvc site.master页面,其目标是确保此图像预先加载并缓存(因为我在我的网站上使用它):

$(document).ready(function () {
var x = new Image();
x.src = "/content/images/ajax-loader.gif";
Run Code Online (Sandbox Code Playgroud)
我假设这个代码会强制预加载和缓存这个ajax加载图像但是当我运行一个引用这个图像的页面时,我仍然会看到这几秒钟.这是一个jqgrid加载div的示例

它将此代码用于loadtext:
$.jgrid = $.jgrid || {};
$.extend($.jgrid,{
defaults : {
recordtext: "View {0} - {1} of {2}",
emptyrecords: "No records to view",
loadtext: "Loading Data ...<img src='/Content/Images/ajax-loader.gif' />",
pgtext : "Page {0} of {1}"
},
Run Code Online (Sandbox Code Playgroud)
在我的实际ajax加载图像显示如下:

是否有任何可能导致此问题的建议以及如何确保在尝试使用此映像之前加载和缓存此映像?我的解决方案实际上是每次重载文件吗?
如何实现目标的最佳建议是什么?
image-caching ×10
android ×4
caching ×3
ios ×2
picasso ×2
afnetworking ×1
android-file ×1
angularjs ×1
asp.net-mvc ×1
asynchronous ×1
css ×1
image ×1
iphone ×1
javascript ×1
jqgrid ×1
jquery ×1
ssl ×1