Vue+mui實現(xiàn)圖片的本地緩存示例代碼
更新時間:2018年05月24日 08:41:14 作者:一念執(zhí)著_c
這篇文章主要介紹了Vue+mui實現(xiàn)圖片的本地緩存的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
下面一段代碼給大家分享基于Vue+mui實現(xiàn)圖片的本地緩存,具體代碼如下所示:
const menu = {
state: {
products: {},
GLOBAL_CONFIG:GLOBAL_CONFIG['GLOBAL_CONFIG']
},
mutations: {
get_product: function (state, products) {
//商品列表
state.products = products;
for(let i = 0; i < state.products.length; i++){
if(state.products[i]['image'] != null){
// state.products[i]['image'] = state.GLOBAL_CONFIG['base64Header'] + state.products[i]['image'];
//下載圖片到本地
this.commit('imgCache',state.products[i]);
}else{
//添加默認圖片
state.products[i]['image'] = require("../assets/file.png");
}
}
},
imgCache: function (state,imgObj) {
mui.plusReady(function(){
// 1. 轉換網絡圖片地址為本地緩存圖片路徑,判斷該圖片是否存在本地緩存
// http://...jpg -> md5
// 緩存目錄 _downloads/image/(md5).jpg
let image_url = imgObj.image;
let image_md5 = md5(image_url);
// 緩存本地圖片url
let local_image_url = '_downloads/image/'+image_md5+'.jpg';
// 平臺絕對路徑
let absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url);
console.log(absolute_image_path);
// 判斷本地是否存在該文件,存在就就直接使用,否則就下載
plus.io.resolveLocalFileSystemURL( absolute_image_path, function( entry ) {
if(entry){
imgObj.image = plus.io.convertLocalFileSystemURL(local_image_url);
}else{
download_img();
}
}, function ( e ) {
console.log("Resolve file URL failed: ");
download_img();
} );
function download_img(){
// filename:下載任務在本地保存的文件路徑
let download_task = plus.downloader.createDownload(image_url, {
filename: local_image_url
}, function(download, status) {
// 下載失敗,刪除本地臨時文件
if(status != 200){
console.log('下載失敗,status'+status);
if(local_image_url != null){
plus.io.resolveLocalFileSystemURL(local_image_url, function(entry) {
entry.remove(function(entry) {
console.log("臨時文件刪除成功" + local_image_url);
// 重新下載圖片
download_img();
}, function(e) {
console.log("臨時文件刪除失敗" + local_image_url);
});
});
}
}else{
// 把下載成功的圖片顯示
// 將本地URL路徑轉換成平臺絕對路徑
console.log("下載成功" + local_image_url);
imgObj.image = plus.io.convertLocalFileSystemURL(local_image_url);
}
});
download_task.start();
}
});
}
},
actions: {
}
}
總結
以上所述是小編給大家介紹的Vue+mui實現(xiàn)圖片的本地緩存示例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
vue3(ts)類型EventTarget上不存在屬性value的問題
這篇文章主要介紹了vue3(ts)類型EventTarget上不存在屬性value的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
解決axios發(fā)送post請求返回400狀態(tài)碼的問題
今天小編就為大家分享一篇解決axios發(fā)送post請求返回400狀態(tài)碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
vue cli4中mockjs在dev環(huán)境和build環(huán)境的配置詳情
這篇文章主要介紹了vue cli4中mockjs在dev環(huán)境和build環(huán)境的配置詳情,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
vue實現(xiàn)編輯器鍵盤抬起時內容跟隨光標距頂位置向上滾動效果
這篇文章主要介紹了vue實現(xiàn)編輯器鍵盤抬起時內容跟隨光標距頂位置向上滾動效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
vue實現(xiàn)進入某個頁面后替換地址欄路徑的操作方法
vue頁面在實際開發(fā)中,經常會遇到改變url參數(shù),重新加載頁面數(shù)據的需求,但是只改變頁面url并不會觸發(fā)組件的生命周期,這就需要用其他方法來實現(xiàn)了,本文重點介紹vue實現(xiàn)進入某個頁面后替換地址欄路徑的操作方法,感興趣的朋友跟隨小編一起看看吧2024-04-04

