【讀書筆記】最佳化iOS Web應用,iosweb
一,代碼最佳化:
代碼最佳化是任何最佳化技術的第一步,因為歸根結底網頁上的一切都是構建在代碼之上的。優秀的代碼可以節省寬頻,減少渲染延遲,以及提高頁面的可讀性和長遠的可維護性。下面列出了一些在Web應用中編寫任何代碼時都應該記住的最佳實務。
1,使用遵循Web標準的代碼。
2,精簡代碼。
3,減少HTTP請求數。
1)單個資源檔必須少於15KB(在未縮的情況上)。
針對iPhone設計的頁面需要將各個資源檔的大小限制在15KB以內,以得到最優的緩衝行為。iPhone最多可以緩衝105個15KB以下的資源檔。在達到緩衝數量上限以後,新緩衝的檔案會覆蓋緩衝中的舊的檔案。
2)全域緩衝資源必須少於1.5KB.
儘管iPhone能夠緩衝很多資源檔,但加起來最多隻能緩衝大概1.5MB.緩衝可用位元組數的上限大約為105*15=1575KB.
3)裝置關機會後清空HTTP緩衝。
如果使用者需要強制重啟裝置,緩衝中的資源就會丟失。這是由於在iPhone上,Safari從系統記憶體中分配空間來建立快取檔案,但並沒有把緩衝組件寫入持久性的存放裝置中。
4)關閉標籤頁也會清空HTTP緩衝。
關閉掉所有標籤,只留下空白標籤後再關掉Safari也會清空緩衝。
從開發的視角來看,這種類型的緩衝是不可靠的。因為它清空的頻率太高,也難以緩衝一個現代網頁的大部分資源。即便是壓縮到極致的JavaScript架構或CSS檔案都很難將大小控制在15k以內,更不用說幾乎所有的Web應用用到的圖片都會超過這個大小。萬幸的是我們還有更好的選擇來實現目標,即HTML5提供的離線功能。
4,合并CSS和JavaScript檔案。
5,減少DOM操作。
二,圖片最佳化。
1,最佳化色彩深度。
2,使用CSS精靈圖。
3,千萬不要縮放圖片。
始終根據裝置視口或是設計項目的寬高來以合適的尺寸使用圖片。別指望Safari能自動把一個圖片縮放到合適的大小。唯一可以例外的是,當我們在指定裝置的Web應用中插入圖片時,可以通過設定值為100%的寬度來同時自適應於橫屏或是豎屏視圖。
這一法則同樣也可以縮短網頁的載入時間及頁面中每次運行JavaScript時給使用者體驗造成的延時,遵守這一法則非常重要,同時也別忘了給圖片設定寬度和高度,這樣也助於減少渲染所用的時間。這一法則同樣縮短了網頁的載入時間以及頁面中每次運行JavaScript時給使用者體驗造成的延時。
三,應用壓縮。
Safari支援GZIP壓縮,所以將Web應用的一些資源進行壓縮會是個不錯的想法,這樣可以提升使用者體驗的層次。我們可以決定什麼時候 壓縮HTML5頁面,CSS3樣式表或是JavaScript代碼,然而卻並沒有必要去壓縮圖片或者是PDF文檔,因為這些類型的資源是已經壓縮過的。對圖片或者PDF文檔進行壓縮是白白浪費CPU資源,甚至有可能反而增大檔案體積。
對於伺服器來說,為了使用Web應用能使用GIP壓縮過的資源,伺服器必須配置為在請求時自動提供壓縮過的資源。另外一方面,用戶端必須支援這種壓縮類型的檔案。
GIP壓縮並不骨檔案格式的限制,因此這是給網頁大幅”瘦身“的最簡易的方式。GZIP壓縮可以將檔案減少大概70%。
雖然好處很明顯,但世界上沒有十全十美,一般而言GZIP壓縮也有一些不足之外。
1,我們需要個個支援GZIP壓縮的瀏覽器。當然,針對我們的情況這並不是一個問題,因為Safari和其他基於WebKit的瀏覽器都支援GZip.
2, 我們無法壓縮力片和PDF文檔,因為它們本身就是一種壓縮格式。
3,由於Safari需要即時地解壓縮資源,某些情況下這一過程會增加CUP刻度和開銷,以致抵消了可能帶來的好處。所以,最好先測試一下,以確保不會被這些額外開銷造成弊大於利的情況。
四,可用性最佳化。
1,可用性檢查。
2,可用性測試。
參考資料:《iOS Web應用開發》