替換網站中的錯誤圖像

       網站開發的時候,經常會遇到一些圖像是動態從數據庫中取出來得。這時候這些圖片的不確定性就很大了,可能是不存在的圖,這時候就會影響網站整體的美觀性。想想挺美的一個網站就因爲一張圖片顯示不出來而出現一個叉叉?多糾結啊~

       很多開發人員會用一張靜態的圖片代替哪些路徑錯誤的圖片。在給img的src賦值之前先檢查圖片是否存在,如果不存在,就用默認圖片替代,如果存在就直接給src賦值。php中檢查圖片路徑是否存在的代碼如下:
    if(file_exists(getcwd().$path)&& $path!=NULL){
            return $path;
        }else{
           
            return $defaultFilePath;
        }

      這種方法只能檢查錯誤的圖片url,不能夠檢查不完整的圖片的url。舉個例子:如果數據庫中獲取出來的url的是"/image/",而你網站中又存在image目錄,這時候顯示出來的圖片路徑就是錯誤的。當然你可以做進一步驗證,比如讀取文件大小,如果文件的大小<=0的時候,說明圖片不存在。但是如果你有一千萬條記錄,每條記錄在顯示的時候都做一次檢查,這樣就會導致網頁加載的速度很慢。

      後來在網上發現一種很好的解決方案,你只需要在img元素中加入onerror,如果錯誤通過js去重新指定src:<img src="<?php echo $path;?>"  onError="this.src='<?php echo $defaultFilePath;?>'">。既方便也簡潔~


       ps:Image 對象的屬性 onerror 聲明瞭一個事件句柄函數,當裝載圖像的過程中發生了錯誤時就會調用這個句柄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章