img标签过滤加fs模块实现图片文件缓存

apicloud

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'))调用即可

效果,第一次是使用网络路径,之后即可缓存到本地,后面打开就不会去访问网络地址了。

2016-04-15 10:41:59

APICLOUD
APICLOUD

这是介绍的地方

APICLOUD的标签

本文相关标签

推荐应用

友情链接


皖ICP备14007051号-2 关于穆子龙