用ajax做image preloader-可行性測試

 Wed, 04 Jul 2007 17:12:20 +0800

因為不確定是不是可行,所以自己做了一下簡單的測試,用xmlhttp向伺服器直接request圖檔,然後看看瀏覽器的cache有沒有變化。結果:

IE7可以,在cacahe目錄裡面會出現cache的圖檔。

firefox2.0.....沒辦法直接看到cache的檔案,所以另外透過觀察disk cache使用量變化的方式來測試....果然也可以(用一個叫做Cache Status的附加元件)。

另外測試了一下執行xmlhttp取得檔案所花費得時間,發現一件事情很有意思:在IE7,第一次用xmlhttp要求圖檔跟第二次以後比較起來,時間大約慢了七倍,所以瀏覽器的cache不只對瀏覽器有效,對於用ajax來request的資源似乎也有效(至少在IE7裡面的圖檔是這樣,我用firefox測試,差距不那麼明顯,大概從375ms->260ms)。

所以用ajax做image preload應該是沒問題,但是在firefox效果有可能會稍微差一點,因為如果每次都做preload,firefox花的時間會比較多。

不過另一個問題是:如果我們用ajax的方式來獲取html或是xml檔案,同樣也會經過瀏覽器的cache機制,是否會有問題?像是取得的內容有可能不是最新的等等....