最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

2023-07-21 09:44 作者:ZZY-Saber  | 我要投稿

1.spa(single page web application) --- 單頁(yè)面應(yīng)用程序

? ? ? ? ? ? 只有一張Web頁(yè)面的應(yīng)用,

? ? ? ? ? ? 是加載單個(gè)HTML 頁(yè)面并在用戶與應(yīng)用程序交互時(shí)動(dòng)態(tài)更新該頁(yè)面的Web應(yīng)用程序。

? ? ? ? ? ? 瀏覽器一開(kāi)始會(huì)加載必需的HTML、CSS和JavaScript,

? ? ? ? ? ? 所有的操作都在這張頁(yè)面上完成,都由JavaScript來(lái)控制。


? ? ? ? ? ? 目前時(shí)興的 React、Vue、Angular 等前端框架均采用了 SPA 原則。


? ? ? ? ? ? 優(yōu)點(diǎn)

? ? ? ? ? ? ? ? - 具有桌面應(yīng)用的即時(shí)性、網(wǎng)站的可移植性和可訪問(wèn)性

? ? ? ? ? ? ? ? - 用戶體驗(yàn)好、快,內(nèi)容的改變不需要重新加載整個(gè)頁(yè)面

? ? ? ? ? ? ? ? - 良好的前后端分離,分工更明確


? ? ? ? ? ? 缺點(diǎn)

? ? ? ? ? ? ? ? - 不利于搜索引擎的抓取

? ? ? ? ? ? ? ? - 首次渲染速度相對(duì)較慢



? ? ? ? ? ? 實(shí)現(xiàn)web單頁(yè)面應(yīng)用

? ? ? ? ? ? ? ? hash模式

? ? ? ? ? ? ? ? history模式

2.?閉包

? ? ? ?閉包是函數(shù)的一種高級(jí)使用方式

? ? ? ?閉包本質(zhì)上利用了函數(shù)的執(zhí)行空間不消毀的特性

? ? ? ?實(shí)現(xiàn)在函數(shù)外部訪問(wèn)函數(shù)內(nèi)部的私有變量

? ? ? ? ? 可以實(shí)現(xiàn)在一個(gè)函數(shù)中使用另一個(gè)函數(shù)中的私有變量


? ? ? ? 閉包的優(yōu)點(diǎn)

? ? ? ? ? ?1. 能夠讓函數(shù)外部訪問(wèn)到函數(shù)內(nèi)部的私有變量

? ? ? ? ? ?2. 能夠保護(hù)函數(shù)的私有變量,不會(huì)污染全局=

? ? ? ? ? ?3. 可以利用閉包的特性,緩存數(shù)據(jù),提高代碼性能


? ? ? ? 閉包的缺點(diǎn)

? ? ? ? ?因?yàn)閷?duì)數(shù)據(jù)的持續(xù)引用,導(dǎo)致函數(shù)的執(zhí)行空間不消毀,容易造成內(nèi)存泄漏

? ? ? ?

? ? ? ?解決閉包造成內(nèi)存泄漏的問(wèn)題

? ? ? ? ? ?在使用完成后,手動(dòng)給變量賦值null,這樣內(nèi)存就會(huì)釋放了


? ? ? 閉包概念 (重點(diǎn))

? ? ? ? ?例如有一個(gè) A 函數(shù),在 A 函數(shù)內(nèi)部訪問(wèn)一個(gè) B 函數(shù)

? ? ? ? ?在 A 函數(shù)外部有變量 C 引用這個(gè) B 函數(shù)

? ? ? ? ? B 函數(shù)內(nèi)部訪問(wèn)者 A函數(shù)內(nèi)部的私有變量

? ? ? ? ? 以上三個(gè)條件缺一不可


? ? ? ?閉包應(yīng)用在哪個(gè)業(yè)務(wù)中

? ? ? ? ?在一個(gè)業(yè)務(wù)中如果需要操作緩存數(shù)據(jù)的時(shí)候,用到了閉包實(shí)現(xiàn)

? ? ? ? ? 同時(shí)

? ? ? ? ? ? ? 節(jié)流.防抖.柯里化的函數(shù) 封裝中 會(huì)使用閉包

? HTTP 的工作流程

? ? ? ? ? ? 1. 客戶端和服務(wù)器建立鏈接(http的三次握手)

? ? ? ? ? ? 2. 建立鏈接后,發(fā)送一個(gè)請(qǐng)求給服務(wù)器(請(qǐng)求request)

? ? ? ? ? ? 3. 服務(wù)器接受到請(qǐng)求以后進(jìn)行相應(yīng)的處理并給出一個(gè)回應(yīng)(響應(yīng)response)

? ? ? ? ? ? 4. 客戶端斷開(kāi)與服務(wù)器的鏈接 (http的四次揮手)



?3. ? ? ? 一次完整的HTTP事務(wù)的過(guò)程

? ? ? ? ? ? 1. 域名解析(dns)

? ? ? ? ? ? 2. 發(fā)起建立與服務(wù)器的鏈接(http的3次握手)

? ? ? ? ? ? 3. 建立TCP連接后發(fā)起http請(qǐng)求

? ? ? ? ? ? 4. 服務(wù)器端響應(yīng)http請(qǐng)求,瀏覽器得到html代碼

? ? ? ? ? ? 5. 瀏覽器解析html代碼,并請(qǐng)求html代碼中的資源

? ? ? ? ? ? 6. 瀏覽器對(duì)頁(yè)面進(jìn)行渲染呈現(xiàn)給用戶

? ? ? ? ? ? 7. 斷開(kāi)與服務(wù)器的鏈接 (http的四次揮手)


? ? ? ? http 三次握手

? ? ? ? ? ? - 第一次握手:

? ? ? ? ? ? ? ? - 建立連接時(shí),客戶端發(fā)送syn報(bào)文(包)(同步序列號(hào))到服務(wù)器,

? ? ? ? ? ? ? ? 并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);

? ? ? ? ? ? - 第二次握手:

? ? ? ? ? ? ? ? - 服務(wù)器收到syn報(bào)文,必須確認(rèn)客戶端的syn報(bào)文,

? ? ? ? ? ? ? ? 同時(shí)自己也發(fā)送一個(gè)SYN報(bào)文,即SYN+ACK(確認(rèn)序列),

? ? ? ? ? ? ? ? 此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);

? ? ? ? ? ? - 第三次握手:

? ? ? ? ? ? ? ? - 客戶端收到服務(wù)器的SYN+ACK報(bào)文,向服務(wù)器發(fā)送確認(rèn)報(bào)文ACK,

? ? ? ? ? ? ? ? 此包發(fā)送完畢,客戶端)和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。


? ? ? ? http 四次揮手

? ? ? ? ? ? - 第一次揮手:

? ? ? ? ? ? ? ? - 客戶端發(fā)送一個(gè)`FIN`,用來(lái)關(guān)閉客戶端到服務(wù)端的數(shù)據(jù)傳送,

? ? ? ? ? ? ? ? 客戶端進(jìn)入`FIN_WAIT_1`狀態(tài)。

? ? ? ? ? ? - 第二次揮手:

? ? ? ? ? ? ? ? - 服務(wù)端收到`FIN`后,返回一個(gè)`ACK(acknowledgment)`客戶端,

? ? ? ? ? ? ? ? 服務(wù)端進(jìn)入`CLOSE_WAIT`狀態(tài)。

? ? ? ? ? ? - 第三次揮手:

? ? ? ? ? ? ? ? - 服務(wù)端發(fā)送一個(gè)`FIN`,用來(lái)關(guān)閉服務(wù)端到客戶單的數(shù)據(jù)傳送,

? ? ? ? ? ? ? ? 服務(wù)端進(jìn)入`LAST_ACK`狀態(tài)。

? ? ? ? ? ? - 第四次揮手:

? ? ? ? ? ? ? ? - 客戶端收到`FIN`后,客戶端進(jìn)入`TIME_WAIT`狀態(tài),

? ? ? ? ? ? ? ? 接著發(fā)送一個(gè)ACK給服務(wù)端,服務(wù)端進(jìn)入`CLOSED`狀態(tài),完成四次揮手

4.? ?Promise

? ? ? ? ? ? Promise 是ES6新增的引用類型,可以通過(guò)new來(lái)進(jìn)行實(shí)例化對(duì)象。

? ? ? ? ? ? Promise 內(nèi)部包含著異步的操作。

? ? ? ? ? ? Promise 是異步編程的一種解決方案

? ? ? ? ? ? ? ? 比傳統(tǒng)的解決方案 --- 回調(diào)函數(shù)嵌套,更合理和更強(qiáng)大。


? ? ? ? ? ? Promise是一個(gè)專門(mén)用來(lái)解決異步 回調(diào)地獄 問(wèn)題的

? ? ? ? ? ? ? ? 回調(diào)地獄 就是 回調(diào)函數(shù)層層嵌套

? ? ? ? ? ? ? ? ? ? 當(dāng)一個(gè)回調(diào)函數(shù)嵌套一個(gè)回調(diào)函數(shù)的時(shí)候

? ? ? ? ? ? ? ? ? ? 就會(huì)出現(xiàn)一個(gè)嵌套結(jié)構(gòu)

? ? ? ? ? ? ? ? ? ? 當(dāng)嵌套的多了就會(huì)出現(xiàn)回調(diào)地獄的情況

? ? ? ? ? ? ? ? 為什么需要使用 回調(diào)函數(shù)

? ? ? ? ? ? ? ? ? ? 當(dāng)我們執(zhí)行一個(gè)異步的行為的時(shí)候,

? ? ? ? ? ? ? ? ? ? 我們需要在一個(gè)異步行為執(zhí)行完畢之后做一些事情

? ? ? ? ? ? ? ? ? ? 那么,我們是沒(méi)有辦法提前預(yù)知這個(gè)異步行為是什么時(shí)候完成的

? ? ? ? ? ? ? ? ? ? 我們就只能以回調(diào)函數(shù)的形式來(lái)進(jìn)行

? ? ? ? ? ? ? ? ? ? 我們并不知道 ajax 請(qǐng)求什么時(shí)候完成,所以就要以回調(diào)函數(shù)的形式來(lái)進(jìn)行

? ? ? ? ? ? ? ? 回調(diào)地獄 會(huì)造成 代碼可讀性變差 且 不易維護(hù)

? ? ? ? ? ? Promise是采用了 鏈?zhǔn)秸Z(yǔ)法 解決 回調(diào)地獄的問(wèn)題


? ? ? ? promise 有三種狀態(tài):

? ? ? ? ? ? - pending ? ? ? ?進(jìn)行中

? ? ? ? ? ? - fulfilled ? ? ?已成功

? ? ? ? ? ? - rejected ? ? ? 已失敗


? ? ? ? promise 意思是表示 承諾 ,表示其他手段無(wú)法改變。

? ? ? ? ? ? 一旦狀態(tài)確定,就不會(huì)再變,任何時(shí)候都可以得到這個(gè)結(jié)果。

? ? ? ?

? ? ? ? Promise 對(duì)象的狀態(tài)改變,只有兩種可能:

? ? ? ? ? ? 從 pending 變?yōu)?fulfilled

? ? ? ? ? ? 從 pending 變?yōu)?rejected

? ? ? ? ? ? 只要這兩種情況發(fā)生,狀態(tài)就凝固了,不會(huì)再變了,會(huì)一直保持這個(gè)結(jié)果,

? ? ? ? ? ? 這時(shí)就稱為 resolved(已定型)。

5.? AJAX(Asynchronous Javascript And XML)

? ? ? ? ? ? ajax 是 異步的JavaScript和XML

? ? ? ? ? ? 前后端 數(shù)據(jù)交互 的一種技術(shù),用于快速創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)

? ? ? ? ? ? ajax 是異步的

? ? ? ? ? ? AJAX 通過(guò)在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。

? ? ? ? ? ? 這意味著可以在不重載整個(gè)頁(yè)面的情況下,對(duì)網(wǎng)頁(yè)的某些部分(局部)進(jìn)行更新。


? ? ? ? 注意:

? ? ? ? ? ? 傳統(tǒng)的網(wǎng)頁(yè)(不使用 AJAX)如果需要更新內(nèi)容,必須重新加載整個(gè)頁(yè)面。

? ? ? ? ? ? 而使用ajax可以在不重新加載網(wǎng)頁(yè)的情況下實(shí)現(xiàn)網(wǎng)頁(yè)的局部更新


? ? ? ? Ajax 并不是一個(gè)新技術(shù),而是多個(gè)技術(shù)的整合:

? ? ? ? ? ? - HTML

? ? ? ? ? ? - CSS

? ? ? ? ? ? - JavaScript

? ? ? ? ? ? - DOM

? ? ? ? ? ? - XMLHttpRequest對(duì)象 (核心)


? ? ? ? 傳統(tǒng)ajax的優(yōu)劣

? ? ? ? ? ? 優(yōu):1. 不需要插件的支持,原生js就可以使用

? ? ? ? ? ? 優(yōu):2. 只更新局部,而不用刷新整個(gè)頁(yè)面

? ? ? ? ? ? 優(yōu):3. 它是異步的,無(wú)阻塞的

? ? ? ? ? ? 劣:4. 流程比較多,編寫(xiě)比較麻煩

6.http請(qǐng)求方式

? ? ? ? ? ? get 請(qǐng)求數(shù)據(jù)

? ? ? ? ? ? ? ? 從安全性方面,get請(qǐng)求相對(duì)來(lái)說(shuō)安全性低一點(diǎn)

? ? ? ? ? ? ? ? 參數(shù)以querystring的形式發(fā)送,也就是直接拼接在 請(qǐng)求路徑的后面

? ? ? ? ? ? ? ? get請(qǐng)求會(huì)被瀏覽器主動(dòng)緩存

? ? ? ? ? ? ? ? get請(qǐng)求根據(jù)不同的瀏覽器對(duì)長(zhǎng)度是有限制的


? ? ? ? ? ? post 發(fā)送數(shù)據(jù)

? ? ? ? ? ? ? ? 從安全性方面,post請(qǐng)求相對(duì)來(lái)說(shuō)要安全一些

? ? ? ? ? ? ? ? post傳輸?shù)臄?shù)據(jù)在body里面,參數(shù)以requestbody的形式發(fā)送,也就是放在請(qǐng)求體中

? ? ? ? ? ? ? ? post請(qǐng)求不會(huì)被瀏覽器主動(dòng)緩存,除非手動(dòng)設(shè)置

? ? ? ? ? ? ? ? post請(qǐng)求理論上是沒(méi)有限制的,除非服務(wù)端做了限制

? ? ? ? ? ? ? ? ? ? - 對(duì)參數(shù)類型沒(méi)有限制,理論上可以傳遞任意數(shù)據(jù)類型,只不過(guò)要和請(qǐng)求頭對(duì)應(yīng)

? ? ? ? ? ? ? ? ? ? - 傳遞的數(shù)據(jù)類型,一般是json數(shù)據(jù)類型


? ? ? ? get和post的區(qū)別總結(jié)

? ? ? ? ? ? 1. 安全性方面,post請(qǐng)求稍微要優(yōu)于get

? ? ? ? ? ? 2. 性能方面,get請(qǐng)求要比post請(qǐng)求快一點(diǎn),所以如果做數(shù)據(jù)查詢,一般都使用get請(qǐng)求

? ? ? ? ? ? 3. 傳輸內(nèi)容的大小,get請(qǐng)求有限制,不同的瀏覽器不太一樣,post理論上沒(méi)有限制

? ? ? ? ? ? 4. 傳遞的參數(shù) get放在url里面 post放在請(qǐng)求體里面

? ? ? ? ? ? 5. 傳遞的數(shù)據(jù)類型 post可以傳遞任意數(shù)據(jù)類型 ?get傳遞的是字符串類型a

千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
红安县| 麻江县| 文昌市| 法库县| 醴陵市| 黄冈市| 东乡族自治县| 屯昌县| 巴东县| 汽车| 衡水市| 大石桥市| 义乌市| 河北区| 新干县| 策勒县| 内乡县| 清河县| 汽车| 哈尔滨市| 广饶县| 哈巴河县| 定陶县| 张家川| 河南省| 新化县| 时尚| 玉溪市| 正蓝旗| 青海省| 西吉县| 淳安县| 桂东县| 三原县| 龙井市| 石柱| 平舆县| 凤庆县| 吉木萨尔县| 东丰县| 祥云县|