一、iframe有哪些缺點(diǎn)?
iframe會阻塞主頁面的Onload事件;搜索引擎的檢索程序無法解讀這種頁面,
不利于SEO;*iframe和主頁面共享連接池,而瀏覽器對相同域的連接有限制,
所以會影響頁面的并行加載。
使用iframe之前需要考慮這兩個(gè)缺點(diǎn)。如果需要使用iframe,
最好是通過javascript動態(tài)給iframe添加src屬性值,這樣可以繞開以上
兩個(gè)問題。
二、如何實(shí)現(xiàn)瀏覽器內(nèi)多個(gè)標(biāo)簽頁之間的通信? (阿里)
WebSocket、SharedWorker;
也可以調(diào)用localstorge、cookies等本地存儲方式;
localstorge另一個(gè)瀏覽上下文里被添加、修改或刪除時(shí),它都會觸發(fā)一個(gè)事件,
我們通過監(jiān)聽事件,控制它的值來進(jìn)行頁面信息通信;
注意quirks:Safari 在無痕模式下設(shè)置localstorge值時(shí)會拋出
QuotaExceededError 的異常;
三、webSocket如何兼容低瀏覽器?(阿里)
Adobe Flash Socket 、ActiveX HTMLFile (IE) 、
基于 multipart 編碼發(fā)送 XHR 、
基于長輪詢的 XHR
四、頁面重構(gòu)怎么操作?
網(wǎng)站重構(gòu):在不改變外部行為的前提下,簡化結(jié)構(gòu)、添加可讀性,
而在網(wǎng)站前端保持一致的行為。
也就是說是在不改變UI的情況下,對網(wǎng)站進(jìn)行優(yōu)化,在擴(kuò)展的同時(shí)保持一致的UI。
對于傳統(tǒng)的網(wǎng)站來說重構(gòu)通常是:
表格(table)布局改為DIV+CSS
使網(wǎng)站前端兼容于現(xiàn)代瀏覽器(針對于不合規(guī)范的CSS、如對IE6有效的)
對于移動平臺的優(yōu)化
針對于SEO進(jìn)行優(yōu)化
深層次的網(wǎng)站重構(gòu)應(yīng)該考慮的方面
減少代碼間的耦合
讓代碼保持彈性
嚴(yán)格按規(guī)范編寫代碼
設(shè)計(jì)可擴(kuò)展的API
代替舊有的框架、語言(如VB)
增強(qiáng)用戶體驗(yàn)
通常來說對于速度的優(yōu)化也包含在重構(gòu)中
壓縮JS、CSS、image等前端資源(通常是由服務(wù)器來解決)
程序的性能優(yōu)化(如數(shù)據(jù)讀寫)
采用CDN來加速資源加載
對于JS DOM的優(yōu)化
HTTP服務(wù)器的文件緩存