|
商品圖是展現商品的最好方法,但當圖檔太大或圖太多,則會造成網頁顯示速度變慢. osCommerce 的內定商品圖顯示方式,是小圖與原圖都以同一個圖檔來顯示,僅在小圖顯示時以HTML的IMG標籤的參數來控制顯示的長寬,所以就算是以小圖顯示,還是必須把原圖傳到用戶端的瀏覽器,再以小圖顯示,所以原圖與小圖在用戶端瀏覽器的顯示速度是一樣的.
osCommerce 圖檔顯示方式

比較好的策略則是替商品的原圖產生縮圖,在顯示小圖時以較小檔案的縮圖來顯示,這樣就可以讓用戶端顯示小圖速度加快.本程式修改服務,則提供更有智慧的縮圖運用策略,處理步驟如下:
- 依據叫用函數是否有額外設定圖檔的長寬,判斷是否使用縮圖.不設定圖檔顯示長寬代表是要以原圖顯示,反之則是要以小圖顯示.
- 若須顯示小圖,先檢查該圖的縮圖是否存在,縮圖存在則直接以縮圖顯示.
- 須顯示小圖而縮圖不存在時,即時依據所設定的圖檔長寬把原圖縮小,產生出縮圖,然後再以該縮圖顯示.
- 產生縮圖須使用PHP的GD函數庫,倘若主機無法支援所需要圖檔的處理(有些主機的PHP版本不支援GIF圖檔的處理),則還是以原圖顯示.
本服務程式修改後圖檔顯示方式

本程式修改服務的優點如下:
- 上述的處理步驟只有在該商品第一次顯示小圖時,才需要花時間產生縮圖,第二次以後就不必浪費時間去產生縮圖,直接以前次處理產生的縮圖來顯示.
- 本程式修改服務僅修改前台的圖檔顯示函數,無須動到後台程式,後台商品上架還是按照原來的處理方式,因此可以搭配多商品上傳等外掛程式.
- 前台程式的處理是直接改寫 osCommerce 的圖檔顯示函數tep_image()內容,該函數的參數以及傳回值維持跟原來一樣,所以其他程式叫用該函數時無須修改叫用的方式,前台可以跟採用標準圖檔輸出的外掛配合,例如STS簡易樣板系統、商品多圖顯示等.
- 縮圖與原圖擺放在相同資料夾,支援商品圖依據分類擺在各自資料夾的圖檔擺放策略,縮圖的命名方式是原圖檔名前面或後面加上標註字樣.
範例: 原圖檔名 mg200mms.gif, 產生縮圖檔名 s_mg200mms.gif 或者 mg200mms_s.gif
|