img标签过滤加fs模块实现图片文件缓存
方法一:
function iCache(selector) {
selector.each(function(data) {
//msg(data);
! function(data) {
var url = selector.eq(data).attr("src");
var img = this;
var filename = GetFileName(url);
var path = "cache://" + filename;
var obj = api.require('fs');
obj.exist({
path : path
}, function(ret, err) {
//msg(ret);
if (ret.exist) {
if (ret.directory) {
//api.alert({msg:'该路径指向一个文件夹'});
} else {
//api.alert({msg:'该路径指向一个文件'});
//selector.eq(data).src=path;
selector.eq(data).attr('src', null);
path = api.cacheDir + '/' + filename;
selector.eq(data).attr('src', path);
//console.log(selector.eq(data).attr("src"));
}
} else {
api.download({
url : url,
savePath : path,
report : false,
cache : true,
allowResume : true
}, function(ret, err) {
//msg(ret);
if (ret) {
var value = ('文件大小:' + ret.fileSize + ';下载进度:' + ret.percent + ';下载状态' + ret.state + '存储路径: ' + ret.savePath);
} else {
var value = err.msg;
};
});
}
});
}(data);
});
};
1.定义使用标签<img src="http://域名/aaa.jpg" class="cache">,比如
<body>
<ul>
<li><img src="http://域名/a.jpg" class="cache"></li>
<li><img src="http://域名/ab.jpg" class="cache"></li>
<li><img src="http://域名/aab.jpg" class="cache"></li>
<li><img src="http://域名/aaab.jpg" class="cache"></li>
</ul>
</body>
//此处是引用的库文件,api.js,zepto.js等
<script XXXXX >
<script>
function iCache(){
//上面的定义
}
apiready=function(){
//(1)初始化工作
//2获取数据
//3封装页面
//4过滤页面链接
iCache($('.cache'));
}
</script>
2.引入zepto.js
3.利用dom.js等模板库或者封装字符串做好页面元素布局
4.iCache($('.chache'))调用即可
效果,第一次是使用网络路径,之后即可缓存到本地,后面打开就不会去访问网络地址了。
二:使用apicloud的 imgcache方法
图片
<img onload="imageCache(this)" data-url="{{=value.img_url}}" class="thumbnail" src="../image/zd.png">
- 图片src必须为存在的图片,否则不会启用
imageCache
方法
//列表图片缓存
function imageCache(ele_){
var imageURL = $api.attr(ele_, 'data-url');
api.imageCache({
url: imageURL
}, function(ret, err){
if(ret.status){
ele_.src = ret.url;
$api.removeAttr(ele_, 'data-url');
}
});
}
简答说,就是不直接设置src图片属性,而是交给imageCache,imageCache内部的处理逻辑应该是如果本地有,就直接返回本地地址,如果本地没有,就下载后返回本地地址(YY); 图片路径用 data-url 表示不直接用使用 src
apicloud 人脸识别登录
http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=14931
最新文章
- mysql常用单行函数
- Atitti 数据库事务处理&#160;attilax总结
- javascript中关于日期和时间的基础知识
- 智能车学习(十五)&mdash;&mdash;K60野火2013版例程
- ReLu(Rectified Linear Units)激活函数
- ctype.h / cctype 中的字符函数
- LINUX的两种后门总结(suid shell与inetd)
- 实验 snort安装配置与规则编写
- 《Linux内核设计的艺术》学习笔记(一)从开机加电到加载三个汇编源码
- apache 的ab 工具
- 欧拉工程第72题:Counting fractions
- 自己手写http服务器 http响应信息的封装与测试
- hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)
- IT小白学习Discuz!框架(一)
- 全局唯一ID发号器的几个思路
- Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c,378 Error:..\FreeRTOS\tasks.c,2806
- [geos]Geometry基本的几何对象
- Saiku部分函数解析(八)
- iphone越狱安装python2.7
- scala快速一览
热门文章
- Vue.js教程—1.介绍和安装
- 【ACM】nyoj_7_街区最短路径问题_201308051737
- mongodb--find高级用法
- magento 的一些关于addFieldToFilter的查询
- SpringBoot+FreeMarker开发word文档下载,预览
- js 清空对象\删除对象的属性
- Codeforces 525E Anya and Cubes 中途相遇法
- Qt5.8 提供 Apple tvOS,watchOS的技术预览版
- 文字录入无限制Undo,Redo的实现
- Windows下Go语言LiteIDE下载及安装