Mark一次圖片預覽功能開發中遇到的問題細節
首先是環境 使用開源js viewer.js做圖片預覽,具體效果可以查看Viewer.js在線演示
下面是遇到的幾個細節
1、不希望暴露文件的路徑、不希望暴露固定的路徑(即每一次都可以通過該路徑訪問資源)
使用緩存,使用UUID隨機生成一個Key和圖片的真實路徑放到緩存中做映射,同時將SessionID和這個key做映射
頁面上所有的圖片統一訪問同一個路徑只是作爲參數的Key不同,後臺根據Key獲取圖片真實路徑,讀取圖片後返回前臺
做Session監聽,當Session過期後 清理緩存,使Key失效
2、當圖片很多時 瀏覽器卡頓
使用懶加載,在網上找了一個懶加載JS,做一個正在加載中的小體積的Gif圖片,默認加載這個Gif圖,當要瀏覽時才加載真實圖片
Web開啓Gzip壓縮(僅限部分格式,某些格式開啓壓縮後會更大。具體自行百度)
開啓緩存,效果是當圖片的最後修改時間不變時,直接使用瀏覽器緩存的圖片
3、圖片損壞的狀況
使用img標籤的onerror事件,加載錯誤圖片 如當前圖片已損壞