12月7日的web前端面試

3.jpg

一、代碼優(yōu)化的方法
CSS優(yōu)化:
1澎剥、利用繼承
Css的繼承機(jī)制可以幫我們在一定程度上縮減字節(jié)數(shù)叭首,我們知道css很多屬性可以繼承,即在父容器設(shè)置了默認(rèn)屬性互广,子容器會默認(rèn)也使用這些屬性敛腌。
可繼承的屬性舉例:
所有元素都可以繼承的屬性:visibility 卧土、cursor
內(nèi)聯(lián)元素和塊元素可以繼承的屬性:
Letter-spacing、word-spacing像樊、white-space尤莺、line-height、color生棍、font颤霎、font-family、font-size涂滴、font-style友酱、font-variant、font-weight柔纵、text-decoration粹污、text-transform、direction首量。
塊狀元素可以繼承的屬性:Text-indent壮吩、text-align;
列表元素可以繼承的屬性:
List-style加缘、list-style-type鸭叙、list-style-position、list-style-image
表格元素可以繼承的屬性:Border-collapse

不可以繼承的屬性:
Display拣宏、margin沈贝、border、padding勋乾、background宋下、height、min-height辑莫、max-height学歧、width、min-width各吨、max-width枝笨、overflow、position揭蜒、left横浑、right、top屉更、bottom徙融、z-index、float瑰谜、clear欺冀、table-layout树绩、vertical-align、page-break-after脚猾、page-break-before、unicode-bidi

2砚哗、css放在head中龙助,減少repaint和reflow
Css方法在頁面的頂部,有利于優(yōu)化的原因蛛芥?提鸟??
當(dāng)瀏覽器從上到下一遍下載html生成dom tree仅淑,一邊根據(jù)瀏覽器默認(rèn)以及現(xiàn)有css生成render tree來渲染頁面称勋。當(dāng)遇到新的css的時候下載并結(jié)合現(xiàn)有css重新生成render tree。則剛才的渲染功能就全廢了涯竟。當(dāng)我們把所有css放在頁面的頂部赡鲜,就沒有重新渲染的過程了。

3庐船、不要用標(biāo)簽或class來限制id银酬。

test .info /div #test這都屬于畫蛇添足

Id已經(jīng)可以唯一而且快速的定位到一個元素了。

JavaScript優(yōu)化總結(jié)
1筐钟、避免全局查找
在一個函數(shù)中盡量將全局對象存儲為局部變量來查找揩瞪,因為訪問局部變量的數(shù)要更快一些。
function(){
alert(window.location.href+window.location.host);
}
修改為:
funciton(){
var location=window.location;
alert(location.href+location.host);
}

2篓冲、使用后測試循環(huán)
在js中李破,我們使用for(;;),while(),for(in)三種循環(huán)。for(in)的效率極差壹将。因為他需要查詢散列鍵嗤攻,只要可以,就應(yīng)該盡量少用诽俯。
for(;;)和while循環(huán)屯曹,while優(yōu)于for(;惊畏;),可能for(恶耽;;)結(jié)構(gòu)問題颜启,需要經(jīng)常的跳轉(zhuǎn)偷俭。do..while更好。

3缰盏、可以用三目運(yùn)算符替換條件分支涌萤,可以提高效率

4淹遵、把腳本置于頁面底部,可以使頁面加載速度更快一些负溪。

5透揣、使用外部JavaScript和CSS
可以調(diào)用外部的。cdn公共庫:http://www.haorooms.com/post/cdn_all

Web性能優(yōu)化
1川抡、通過css sprites來整合圖像
若頁面中有6個小圖像辐真,那么瀏覽器在顯示時會分別下載,你可以通過css sprites將這些圖像合并成為一個崖堤,可以減少頁面加載所需要的時間侍咱。
Css sprites兩個步驟:整合圖像,定位圖像

2密幔、如果你的css和js較小楔脯,可以將css和js內(nèi)嵌到html頁面中,這樣可以減少頁面加載所需要的文件數(shù)胯甩,從而加快頁面的加載昧廷。

3、指定圖像尺寸
當(dāng)瀏覽器加載頁面的html時偎箫,有時候需要在圖片下載完成前麸粮,對頁面布局進(jìn)行定位。如果hmtl里的圖片沒有指定尺寸镜廉,或者代碼描述的尺寸和實際的圖片尺寸不符合時弄诲,瀏覽器需要在圖片下載完成后在回溯到該圖片,并重新顯示娇唯,這將消耗額外的時間齐遵。
最好的頁面中每一張圖片都指定尺寸,不管在html里的img中塔插,還是在css中梗摇。

4.jpg

二、js(Event)事件:
//點擊添加事件
//它有三個參數(shù)想许,第三個參數(shù)若是true伶授,則表示采用事件捕獲,若是false流纹,則表示采用事件冒泡糜烹。
function addEvent(ele, type, fun) {
if (ele.addEventListener) {
ele.addEventListener(type, fun, false);
} else if (ele.attachEvent) {
ele.attachEvent(type, fun);
}
}
//點擊移除事件
function removeEvent(ele, type, fun) {
if (ele.removeEventListener) {
ele.removeEventListener(type, fun, false);
} else if (ele.detachEvent) {
ele.detachEvent(type, fun);
}
}
//阻止默認(rèn)事件
function prevent(e) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}
//阻止冒泡事件
function stop(e) {
if (e.stopPropagation) {
e.stopPropagation();
} else {
e.cancelBubble = true;
}
}
//點擊事件
function targets(e) {
e = e || window.event;
if (e.target) {
//獲取事件對象
return e.target;
} else {
//獲取事件源
return e.srcElement;
}
}

5.jpg

三、$.get()和$.post()和$.ajax()的區(qū)別和聯(lián)系
區(qū)別:
$.get():
通過遠(yuǎn)程 HTTP GET 請求載入信息漱凝。這是一個簡單的 GET 請求功能以取代復(fù)雜的$.ajax().請求成功時可調(diào)用回調(diào)函數(shù)疮蹦。
如果需要在出錯時執(zhí)行函數(shù),請使用$.ajax()
$.post():
通過遠(yuǎn)程 HTTP POST 請求載入信息茸炒。這是一個簡單的 POST 請求功能以取代復(fù)雜的$.ajax().請求成功時可調(diào)用回調(diào)函數(shù)愕乎。
如果需要在出錯時執(zhí)行函數(shù)阵苇,請使用$.ajax()
$.ajax():
通過 HTTP 請求加載遠(yuǎn)程數(shù)據(jù)。jQuery 底層 AJAX 實現(xiàn)感论。
聯(lián)系:
前兩者是$.ajax()的簡單易用實現(xiàn)绅项,以方便我們的使用。
當(dāng)把$.ajax()中的參數(shù)type設(shè)為Get或Post比肄,則分別同get()或post()

樣式調(diào)整:
function setFontSize() {
var doc = document,
width = doc.documentElement.clientWidth,
times = width / 320;
doc.documentElement.style.fontSize = (times * 100) + "px";
}
setFontSize();
window.onresize = function() {
setFontSize();
}

(function(doc, win) {
var docEl = doc.documentElement,
resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
recalc = function() {
var clientWidth = docEl.clientWidth;
if (!clientWidth) return;
docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
};
if (!doc.addEventListener) return;
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);


6.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末快耿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子薪前,更是在濱河造成了極大的恐慌润努,老刑警劉巖关斜,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件示括,死亡現(xiàn)場離奇詭異,居然都是意外死亡痢畜,警方通過查閱死者的電腦和手機(jī)垛膝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丁稀,“玉大人吼拥,你說我怎么就攤上這事∠呱溃” “怎么了凿可?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長授账。 經(jīng)常有香客問我枯跑,道長,這世上最難降的妖魔是什么白热? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任敛助,我火速辦了婚禮,結(jié)果婚禮上屋确,老公的妹妹穿的比我還像新娘纳击。我一直安慰自己,他們只是感情好攻臀,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布焕数。 她就那樣靜靜地躺著,像睡著了一般刨啸。 火紅的嫁衣襯著肌膚如雪百匆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天呜投,我揣著相機(jī)與錄音加匈,去河邊找鬼存璃。 笑死,一個胖子當(dāng)著我的面吹牛雕拼,可吹牛的內(nèi)容都是我干的纵东。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼啥寇,長吁一口氣:“原來是場噩夢啊……” “哼偎球!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辑甜,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤衰絮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后磷醋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猫牡,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年邓线,在試婚紗的時候發(fā)現(xiàn)自己被綠了淌友。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡骇陈,死狀恐怖震庭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情你雌,我是刑警寧澤器联,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站婿崭,受9級特大地震影響拨拓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜逛球,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一千元、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颤绕,春花似錦幸海、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至氯葬,卻和暖如春挡篓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工官研, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秽澳,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓戏羽,卻偏偏與公主長得像担神,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子始花,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前端開發(fā)面試知識點大綱: HTML&CSS: 對Web標(biāo)準(zhǔn)的理解妄讯、瀏覽器內(nèi)核差異、兼容性酷宵、hack亥贸、CSS基本功:...
    秀才JaneBook閱讀 2,383評論 0 25
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,762評論 1 92
  • <a name='html'>HTML</a> Doctype作用浇垦?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)炕置、<...
    clark124閱讀 3,498評論 1 19
  • 很早之前就在看web前端面試題,一直想總結(jié)一個比較全面又詳細(xì)的面試題庫,現(xiàn)在總結(jié)了一些巷屿,分享給大家,以后還會持續(xù)更...
    櫻桃小丸子兒閱讀 85,584評論 32 691
  • 今天在公司 做關(guān)于圖片上傳的時候, 用的最新的retrofit 去進(jìn)行 文字和 多圖的上傳误辑, 服務(wù)端返回的數(shù)據(jù)顯示...
    Michaelhanji閱讀 451評論 0 2