一、iframe 阻塞 onload
window的onload事件要等頁面中所有內(nèi)容加載完成,包括所有iframe加載完成以后才會運(yùn)行,所以會給用戶帶來很大的“誤解”,萬一當(dāng)iframe加載過慢,會讓用戶感覺網(wǎng)站速度很慢。
解決方案:用javascript動態(tài)的給iframe賦值。
二、鏈接池
對每個 web 服務(wù)器來說,瀏覽器只打開極少的幾個連接數(shù)。老的瀏覽器,包括 ie 6/7 和 firefox 2,每個主機(jī)只有2個連接。在新的瀏覽器中,連接數(shù)增加鳥。safari 3+ 和 opera 9+ 增至4個,chrome 1+ 、ie 8 及 firefox 3 增至6個。
人們可能期望每個 iframe 有單獨(dú)的連接池,但并非如此。在大多數(shù)瀏覽器中,連接被主頁面和它的 iframe 所共享,這意味著有可能 iframe 中的資源占用了可用連接而阻塞了主頁面的資源加載。如果 iframe 中的內(nèi)容同等重要,或比主頁面更重要,這很好。然而在通常情況下 iframe 中的內(nèi)容對頁面來說不太重要,iframe 占用連接數(shù)是不可取的。一個解決方案是在優(yōu)先級更高的資源下載完成后再動態(tài)的給 iframe 的 src 賦值。
三、耗費(fèi)性能
創(chuàng)建iframe耗費(fèi)的性能比其他dom元素(包括style或script)多10-100倍