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