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