js基礎(chǔ)常見問題總結(jié)(三)~

web前端性能優(yōu)化總結(jié)


瀏覽器訪問優(yōu)化

1娜膘、減少http請求逊脯,合理設(shè)置 HTTP緩存
 2、使用瀏覽器緩存
 3竣贪、啟用壓縮
 4军洼、CSS Sprites
 5巩螃、LazyLoad Images
 6、CSS放在頁面最上部匕争,javascript放在頁面最下面
 7避乏、異步請求Callback(就是將一些行為樣式提取出來,慢慢的加載信息的內(nèi)容)
 8甘桑、減少cookie傳輸

Javascript代碼優(yōu)化

(1). DOM
 (2). 慎用 with 
 (3). 避免使用 eval和 Function
 (4). 減少作用域鏈查找
 (5). 數(shù)據(jù)訪問
 (6). 字符串拼接


什么是User-Agent

User-Agent是Http協(xié)議中的一部分拍皮,屬于頭域的組成部分,User Agent也簡稱UA扇住。用較為普通的一點來說春缕,是一種向訪問網(wǎng)站提供你所使用的瀏覽器類型、操作系統(tǒng)及版本艘蹋、CPU 類型锄贼、瀏覽器渲染引擎、瀏覽器語言女阀、瀏覽器插件等信息的標識宅荤。UA字符串在每次瀏覽器 HTTP 請求時發(fā)送到服務(wù)器!
  瀏覽器UA 字串的標準格式為: 瀏覽器標識 (操作系統(tǒng)標識; 加密等級標識; 瀏覽器語言) 渲染引擎標識 版本信息

什么是線程浸策?什么是進程冯键?

什么是進程?
  當一個程序開始的時候他就是一個進程庸汗,進程包括運行中的從程序和程序所使用到的內(nèi)存和系統(tǒng)資源惫确。
  而一個進程又是由多個線程組成的。
 什么是線程
  線程是程序中的一個 執(zhí)行流蚯舱,每個線程都有自己的專有寄存器(棧指針改化,程序計數(shù)器等),但代碼區(qū)是共享的枉昏,既不同的線程可以執(zhí)行同樣的函數(shù)陈肛。

什么是單線程?什么是多線程?

什么是多線程
  多線程是指程序中包含多個執(zhí)行流兄裂,即在一個程序中同時運行多個不同的線程來執(zhí)行不同的任務(wù)句旱。也就是說允許單個程序創(chuàng)建多個并行執(zhí)行的線程來完成各自的任務(wù)。
 多線程的好處
  可以提高CPU的利用率晰奖。在多線程程序中谈撒,一個線程必須等待的時候,CPU可以運行其它的線程而不是等待匾南,這樣就大大提高了程序的效率啃匿。

多線程與單線程的區(qū)別
【生活舉例】
你早上上班,正要打卡的時候午衰,手機響了立宜。。你如果先接了電話臊岸,等接完了橙数,在打卡,就是單線程帅戒。
如果你一手接電話灯帮,一手打卡。就是多線程逻住。
兩件事的結(jié)果是一樣的钟哥。。你接了電話且打了卡瞎访。

Javascript是單線程的
   因為JS運行在瀏覽器中腻贰,是單線程的,每個window一個JS線程扒秸,既然是單線程的播演,在某個特定的時刻只有特定的代碼能夠被執(zhí)行,并阻塞其它的代碼伴奥。而瀏覽器是事件驅(qū)動的(Event driven)写烤,瀏覽器中很多行為是異步(Asynchronized)的,會創(chuàng)建事件并放入執(zhí)行隊列中拾徙。javascript引擎是單線程處理它的任務(wù)隊列洲炊,你可以理解成就是普通函數(shù)和回調(diào)函數(shù)構(gòu)成的隊列。當異步事件發(fā)生時尼啡,如mouse click, a timer firing, or an XMLHttpRequest completing(鼠標點擊事件發(fā)生暂衡、定時器觸發(fā)事件發(fā)生、XMLHttpRequest完成回調(diào)觸發(fā)等)玄叠,將他們放入執(zhí)行隊列古徒,等待當前代碼執(zhí)行完成。
  瀏覽器不是單線程的
   雖然JS運行在瀏覽器中读恃,是單線程的隧膘,每個window一個JS線程,但瀏覽器不是單線程的寺惫,例如Webkit或是Gecko引擎疹吃,都可能有如下線程:

  • javascript引擎線程
  • 界面渲染線程
  • 瀏覽器事件觸發(fā)線程
  • Http請求線程

前端開發(fā)之面向?qū)ο?/h2>

** 面向?qū)ο蟮幕靖拍?*
  面向?qū)ο蟮挠⑽娜Q叫做Object Oriented,簡稱OO西雀。OO其實包括OOA(Object Oriented Analysis萨驶,面向?qū)ο蠓治?、OOD(Object Oriented Design艇肴,面向?qū)ο笤O(shè)計)和OOP(Object Oriented Programming腔呜,面向?qū)ο蟮某绦蛟O(shè)計)叁温。
  通常所說的面向?qū)ο笫侵窸OP, OOP是一種圍繞真實世界的概念來組織模型的程序設(shè)計方法,它采用對象來描述問題空間的實體核畴。在使用計算機解決問題時膝但,對象是作為計算機模擬真實世界的一個抽象,一個對象就是一個物理實體或邏輯實體谤草,它反映了系統(tǒng)為之保存信息和(或)與它交互的能力跟束。使其具有自己的屬性和行為, 從而簡化對復(fù)雜事物的描述丑孩,更有利于工程的可維護性和擴展性冀宴。
  OOP同結(jié)構(gòu)化程序設(shè)計相比最大的區(qū)別就在于: 前者首先關(guān)心的是所要處理的數(shù)據(jù),而后者首先關(guān)心的是功能温学。
 面向?qū)ο笕齻€基本特征
  封裝 (Encapsulation) 將數(shù)據(jù)以及相關(guān)的操作組織在一起略贮,成為獨立的構(gòu)件。外部無法直接訪問這些封裝了的數(shù)據(jù)枫浙,從而保證了這些數(shù)據(jù)的正確性刨肃。封裝的目的是為了內(nèi)部數(shù)據(jù)表現(xiàn)形式和實現(xiàn)細節(jié)的隱藏,信息隱藏是為了減少系統(tǒng)各部分間的依賴性箩帚,各部分間必須通過明確的通道傳送信息真友,也就是對象間的接口.這樣一來,隱藏了部分內(nèi)部的細節(jié)紧帕,極大方便系統(tǒng)的開發(fā)盔然,維護和擴展。
  繼承 (Inheritance) 繼承是一種聯(lián)結(jié)類的層次模型是嗜,并且允許和鼓勵類的重用愈案,它提供了一種明確表述共性的方法。一個新類可以從現(xiàn)有的類中派生鹅搪,這個過程稱為類的繼承站绪。新類繼承了原始類的特性,新類稱為原始類的派生類(子類)丽柿,而原始類稱為新類的基類(父類)恢准。派生類可以從它的基類那里繼承方法和實例變量,并且派生類可以修改或增加新的方法使之更適合特殊的需求甫题。繼承性很好地解決了軟件的可重用性問題馁筐。
  多態(tài) (Polymorphism) 多態(tài)是允許你將父對象設(shè)置成為和一個或更多的他的子對象相等的技術(shù),賦值之后坠非,父對象就可以根據(jù)當前賦值給它的子對象的特性以不同的方式運作敏沉。簡單的說,就是允許類與類之間相同方法名的指針得以調(diào)用, 這樣很好地解決了應(yīng)用程序函數(shù)同名問題盟迟。實現(xiàn)多態(tài)秋泳,有二種方式,覆蓋攒菠,重載轮锥。


持續(xù)集成是什么

持續(xù)集成指的是,頻繁地(一天多次)將代碼集成到主干要尔。
 它的好處主要有兩個:
  1、快速發(fā)現(xiàn)錯誤新娜。每完成一點更新赵辕,就集成到主干,可以快速發(fā)現(xiàn)錯誤概龄,定位錯誤也比較容易还惠。
  2、防止分支大幅偏離主干私杜。如果不是經(jīng)常集成蚕键,主干又在不斷更新,會導(dǎo)致以后集成的難度變大衰粹,甚至難以集成锣光。

持續(xù)集成的目的,就是讓產(chǎn)品可以快速迭代铝耻,同時還能保持高質(zhì)量誊爹。它的核心措施是,代碼集成到主干之前瓢捉,必須通過自動化測試频丘。只要有一個測試用例失敗,就不能集成泡态。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搂漠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子某弦,更是在濱河造成了極大的恐慌桐汤,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刀崖,死亡現(xiàn)場離奇詭異惊科,居然都是意外死亡,警方通過查閱死者的電腦和手機亮钦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門馆截,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事蜡娶』炻眩” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵窖张,是天一觀的道長幕随。 經(jīng)常有香客問我,道長宿接,這世上最難降的妖魔是什么赘淮? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮睦霎,結(jié)果婚禮上梢卸,老公的妹妹穿的比我還像新娘。我一直安慰自己副女,他們只是感情好蛤高,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碑幅,像睡著了一般戴陡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沟涨,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天恤批,我揣著相機與錄音,去河邊找鬼裹赴。 笑死开皿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的篮昧。 我是一名探鬼主播赋荆,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼懊昨!你這毒婦竟也來了窄潭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤酵颁,失蹤者是張志新(化名)和其女友劉穎嫉你,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏惋,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡幽污,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了簿姨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片距误。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡簸搞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出准潭,到底是詐尸還是另有隱情趁俊,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布刑然,位于F島的核電站寺擂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏泼掠。R本人自食惡果不足惜怔软,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望择镇。 院中可真熱鬧爽雄,春花似錦、人聲如沸沐鼠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饲梭。三九已至,卻和暖如春焰檩,著一層夾襖步出監(jiān)牢的瞬間憔涉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工析苫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兜叨,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓衩侥,卻偏偏與公主長得像国旷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子茫死,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

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

  • 從三月份找實習到現(xiàn)在跪但,面了一些公司,掛了不少峦萎,但最終還是拿到小米屡久、百度、阿里爱榔、京東被环、新浪、CVTE详幽、樂視家的研發(fā)崗...
    時芥藍閱讀 42,239評論 11 349
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理筛欢,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法悴能,類相關(guān)的語法揣钦,內(nèi)部類的語法,繼承相關(guān)的語法漠酿,異常的語法冯凹,線程的語...
    子非魚_t_閱讀 31,622評論 18 399
  • 沐這幾天有點忙,沒和草好好聊天炒嘲,但會及時分享所得所失宇姚,因為愛!
    沐師兄閱讀 490評論 2 1
  • 撥通那串熟悉的數(shù)字夫凸,沒有勇氣說話浑劳,聽著你說話的聲音,止不住的落淚……就算我說了夭拌,你也是一如既往的煩躁魔熏,對著我發(fā)火吧...
    么么smile閱讀 195評論 0 0