主頁 > 前端設計 > 最全前端面試總結

最全前端面試總結

2020-11-18 14:17:42 前端設計

1.盒子模型

一個盒子中主要的屬性就5個:width、height、padding(內邊距)、border、margin(外邊距),

盒模型有標準盒模型和IE的盒模型,

è?é?????è?°IE盒模型: 這里寫圖片描述

不同之處就是標準盒模型的內容大小就是content的大小,而IE的則是content + padding +border 總的大小,

那么隨之而來第二個問題–怎么設定這兩種模型呢?
很簡單,通過設定 box-sizing:content-box(W3C)/border-box(IE)就可以達到自由切換的效果,

2.js有幾種資料型別?null與undefined的區別?

JS有7種資料型別:三種基本型別(數字,字串,布爾),兩種參考資料型別(物件,陣列),兩種特殊資料型別(undefined,null

其中上面的四種(undefined, number, string, boolean)屬于簡單的值型別,不是物件,

剩下的幾種情況——函式、陣列、物件、null、new Number(10)都是物件,他們都是參考型別,

值型別的型別判斷用typeof,參考型別的型別判斷用instanceof,

null與undefined的區別

undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義,undefined型別只有一個值,undefined.
(1)所有已宣告但是沒有初始化的變數,默認值都為undefined,
(2)函式沒有明確回傳值的時候,會默認回傳undefined,

null為一個空指標物件null表示"沒有物件",即該處不應該有值
當函式回傳的物件不存在時,回傳null,
當某個物件不需要時,可將值設為null,

3.js閉包

閉包是指有權訪問另一個函式作用域變數的函式,

清晰的講:閉包就是一個函式,這個函式能夠訪問其他函式的作用域中的變數

創建閉包的通常方式,是在一個函式內部創建另一個函式,

由于作用域鏈的結構,外圍函式是無法訪問內部變數的,為了能夠訪問內部變數,我們就可以使用閉包,閉包的本質還是函式

4.重繪和回流

只是樣式的變化,不會引起DOM樹變化,頁面布局變化的行為叫重繪且重繪不一定會伴隨回流

引起DOM樹結構變化,頁面布局變化的行為叫回流且回流一定伴隨重繪,

什么情況下回導致回流,如何避免回流?

1.頁面初次渲染

2.瀏覽器視窗尺寸改變

resize事件發生也會引起回流,

3.DOM的增刪行為

比如你要洗掉某個節點,給某個父元素增加子元素,這類操作都會引起回流,

如果要加多個子元素,最好使用documentfragment,(讓要操作的元素進行離線處理,處理完事以后再一起更新

documentFragment是一個保存多個element的容器物件(保存在記憶體)當更新其中的一個或者多個element時,頁面不會更新,只有當documentFragment容器中保存的所有element更新后再將其插入到頁面中才能更新頁面,
documentFragment用來批量更新

4.幾何屬性的變化

比如元素寬高變了,border變了,字體大小變了,這種直接會引起頁面布局變化的操作也會引起回流,

如果你要改變多個屬性,最好將這些屬性定義在一個class中,直接修改class名,這樣只用引起一次回流

5.元素位置的變化

改一個元素的左右margin,padding之類的操作

所以在做元素位移的影片,不要更改margin之類的屬性,使用定位脫離檔案流后改變位置會更好

5.本地存盤和離線快取

5.1本地存盤

1.cookie

(1)在h5之前,存盤主要用的是cookie,cookie會隨著每次http請求頭資訊一起發送,無形中增加了網路流量,另外,cookie能存盤的資料容量有限,根據瀏覽器型別不同而不同

(2)cookie的優缺點

  • 優點:
  • 可控制過期時間,使其不會長期有效
  • 可擴展、可用性比較好
  • 可加密減少cookie被破解的可能性
  • 缺點:
  • 數量和長度有限制,最多20條,最長不能超過4k
  • 在請求頭上帶著資料安全性差

(3)cookie的應用場景:主要應用:購物車、客戶端登錄

2.localStorage

(1)localStorage(本地存盤),可以長期存盤資料,沒有時間限制,一天,一年,兩年甚至更長,資料都可以使用

(2)優缺點

  • 優點:
    localStorage拓展了cookie的4k限制
    localStorage可以將第一次請求的5M大小資料直接存盤到本地,相比于cookie可以節約帶寬
    localStorage的使用也是遵循同源策略的,所以不同的網站直接是不能共用相同的localStorage
  • 缺點:
    需要手動洗掉,否則長期存在
    瀏覽器大小不一,版本的支持也不一樣
    localStorage只支持string型別的存盤,JSON物件需要轉換
    localStorage本質上是對字串的讀取,如果存盤內容多的話會消耗記憶體空間,會導致頁面變卡
  • 特點:
    同源策略限制、只在本地存盤、永久保存、同瀏覽器共享

(3)應用場合

  1. 資料比較大的臨時保存方案,如在線編輯文章時的自動保存,
  2. 多頁面訪問共同資料,sessionStorage只適用于同一個標簽頁,localStorage相比而言可以在多個標簽頁中共享資料,

3.sessionStorage

(1)sessionStorage(會話存盤),只有在瀏覽器被關閉之前使用,創建另一個頁面時同意可以使用,關閉瀏覽器之后資料就會消失

(2)特點

  • 同源策略限制,若想在不同頁面之間對同一個sessionStorage進行操作,這些頁面必須在同一協議、同一主機名和同一埠下,
  • 單標簽頁限制,sessionStorage操作限制在單個標簽頁中,在此標簽頁進行同源頁面訪問都可以共享sessionStorage資料,
  • 只在本地存盤,seesionStorage的資料不會跟隨HTTP請求一起發送到服務器,只會在本地生效,并在關閉標簽頁后清除資料
  • 存盤方式,seesionStorage的存盤方式采用key、value的方式,value的值必須為字串型別(傳入非字串,也會在存盤時轉換為字串,),
  • 存盤上限限制:不同的瀏覽器存盤的上限也不一樣,但大多數瀏覽器把上限限制在5MB以下,

(3)應用場合:sessionStorage 非常適合單頁應用程式,可以方便在各業務模塊進行傳值,

5.2離線快取

Application Cache (Manifest)

1)使用方法:

1> 在html標簽添加manifest屬性

在頁面的html標簽中添加manifest屬性,屬性值為manifest檔案的路徑,如:

 <!DOCTYPE HTML> 
    <html manifest="../js/demo.manifest">
            ...
    </html>

2)撰寫manifest檔案

manifest檔案是簡單的文本檔案,它會告知瀏覽器需要快取的內容以及不需要快取的內容,

manifest檔案可分為三部分:
(1) CACHE MANIFEST - 在此標題下列出的檔案將在首次下載后進行快取
(2)NETWORK - 在此標題下列出的檔案需要與服務器的連接,且不會被快取
(3)FALLBACK - 在此標題下列出的檔案規定當頁面無法訪問時的回退頁面(比如 404 頁面)

簡單示例:
    CACHE MANIFEST
    #version 1.1   /*版本號*/
    CACHE:
        html/index.html /*需要快取的檔案*/
    NETWORK:
        js/jquery.js /*不需要快取的檔案*/
    FALLBACK: 
        html/index.html /*當頁面無法訪問時的回退頁面*/

3)離線快取與傳統瀏覽器快取區別

瀏覽器快取(Browser Caching)是為了節約網路的資源加速瀏覽,瀏覽器在用戶磁盤上對最近請求過的檔案進行存盤,當訪問者再次請求這個頁面時,瀏覽器就可以從本地磁盤顯示檔案,這樣就可以加速頁面的閱覽

區別:

1、離線快取是針對整個應用,瀏覽器快取是單個檔案

2、離線快取斷網了還是可以打開頁面,瀏覽器快取不行

3、離線快取可以主動通知瀏覽器更新資源

5.3、本地存盤和離線存盤有什么不同

本地存盤與離線快取都是為了方便網頁的加載,提高用戶體驗等,
本地存盤一般存盤的都是資料,而離線快取一般存盤的是網頁等,

6.冒泡演算法思想

交換排序的基本思想是:兩兩比較待排序記錄的關鍵字,發現兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止,
應用交換排序基本思想的主要排序方法有:冒泡排序和快速排序,

7.vue中的key值作用

需要使用key來給每個節點做一個唯一標識,Diff演算法就可以正確的識別此節點,找到正確的位置區插入新的節點,

所以一句話,key的作用主要是為了高效的更新虛擬DOM

8.v-if和v-show的差別

v-if 是動態添加,當值為 false 時,是完全移除該元素,即 dom 樹中不存在該元素,

v-show 僅是隱藏 / 顯示,值為 false 時,該元素依舊存在于 dom 樹中,若其原有樣式設定了 display: none 則會導致其無法正常顯示

9.vue的生命周期

從開始創建、初始化資料、編譯模板、掛載Dom、渲染→更新→渲染、卸載等一系列程序

簡單講是一個組件從開始到最后消亡所經歷的各種狀態,就是一個組件的生命周期

一個vue實體在創建程序中呼叫的幾個生命周期鉤子,

1.beforeCreate 說明:在實體初始化之后,資料觀測 (data observer) 和 event/watcher 事件配置之前被呼叫 注意:此時,無法獲取 data中的資料、methods中的方法
2.created 這是一個常用的生命周期,可以呼叫methods中的方法、改變data中的資料,最常見的就是發送ajax請求來對已經構建完畢的vue物件的靜態屬性進行一些初始化,
3.beforeMount 在掛載開始之前被呼叫
4.mounted 此時,vue實體已經掛載到頁面中,可以獲取到el中的DOM元素,進行DOM操作
5.beforeUpdate 資料更新時呼叫,發生在虛擬 DOM 重新渲染和打補丁之前,你可以在這個鉤子中進一步地更改狀態,這不會觸發附加的重渲染程序,
6.updated 組件 DOM 已經更新,所以你現在可以執行依賴于 DOM 的操作,
7.beforeDestroy 實體銷毀之前呼叫,在這一步,實體仍然完全可用,使用場景:實體銷毀之前,執行清理任務,比如:清除定時器等
8.destroyed 說明:Vue 實體銷毀后呼叫,呼叫后,Vue 實體指示的所有東西都會解系結,所有的事件監聽器會被移除,所有的子實體也會被銷毀,

10.跨域

1. 什么是跨域請求

? 在 HTML 中,<a>, <form>, <img>, <script>, <iframe>, <link> 等標簽以及 Ajax 都可以指向一個資源地址,而所謂的跨域請求就是指:當前發起請求的域與該請求指向的資源所在的域不同時的請求,這里的域指的是這樣的一個概念:我們認為如果 “協議 + 域名 + 埠號” 均相同,那么就是同域,

舉個例子:假如一個域名為 aaa.cn的網站,它發起一個資源路徑為 aaa.cn/books/getBookInfo的 Ajax 請求,那么這個請求是同域的,因為資源路徑的協議、域名以及埠號與當前域一致(例子中協議名默認為http,埠號默認為80),但是,如果發起一個資源路徑為 bbb.com/pay/purchase的 Ajax 請求,因為請求域 http://bbb.com:80和發起請求的域 http://aaa.cn:80不同,那么這個請求就是跨域請求,

域名、協議、埠有一個不同就不是同源,三者均相同,這兩個網站才是同源

2.跨域的解決方案

1、 通過jsonp跨域

??jsonp的原理就是利用<script>標簽沒有跨域限制,通過<script>標簽src屬性,發送帶有callback引數的GET請求,服務端將介面回傳資料拼湊到callback函式中,回傳給瀏覽器,瀏覽器決議執行,從而前端拿到callback函式回傳的資料,只能發送get一種請求,

2、跨域資源共享(CORS)

??CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing),它允許瀏覽器向跨源服務器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制,CORS需要瀏覽器和服務器同時支持,目前,所有瀏覽器都支持該功能,IE瀏覽器不能低于IE10,

3、nginx代理跨域

??nginx代理跨域,實質和CORS跨域原理一樣,通過組態檔設定請求回應頭Access-Control-Allow-Origin…等欄位,

1)nginx配置解決iconfont跨域

??瀏覽器跨域訪問js、css、img等常規靜態資源被同源策略許可,但iconfont字體檔案(eot|otf|ttf|woff|svg)例外,此時可在nginx的靜態資源服務器中加入以下配置,

location / {
  add_header Access-Control-Allow-Origin *;
}

2)nginx反向代理介面跨域

跨域問題:同源策略僅是針對瀏覽器的安全策略,服務器端呼叫HTTP介面只是使用HTTP協議,不需要同源策略,也就不存在跨域問題,

實作思路:通過Nginx配置一個代理服務器域名與domain1相同,埠不同)做跳板機,反向代理訪問domain2介面,并且可以順便修改cookie中domain資訊,方便當前域cookie寫入,實作跨域訪問,

4、nodejs中間件代理跨域

??node中間件實作跨域代理,原理大致與nginx相同,都是通過啟一個代理服務器,實作資料的轉發,也可以通過設定cookieDomainRewrite引數修改回應頭中cookie中域名,實作當前域的cookie寫入,方便介面登錄認證,

5、document.domain + iframe跨域

??此方案僅限主域相同,子域不同的跨域應用場景,實作原理:兩個頁面都通過js強制設定document.domain為基礎主域,就實作了同域,

6、location.hash + iframe跨域

??實作原理: a欲與b跨域相互通信,通過中間頁c來實作, 三個頁面,不同域之間利用iframe的location.hash傳值,相同域之間直接js訪問來通信,

7、window.name + iframe跨域

??window.name屬性的獨特之處:name值在不同的頁面(甚至不同域名)加載后依舊存在,并且可以支持非常長的 name 值(2MB),

??通過iframe的src屬性由外域轉向本地域,跨域資料即由iframe的window.name從外域傳遞到本地域,這個就巧妙地繞過了瀏覽器的跨域訪問限制,但同時它又是安全操作,

8、postMessage跨域

??postMessage是HTML5 XMLHttpRequest Level 2中的API,且是為數不多可以跨域操作的window屬性之一,它可用于解決以下方面的問題:

  • 頁面和其打開的新視窗的資料傳遞
  • 多視窗之間訊息傳遞
  • 頁面與嵌套的iframe訊息傳遞
  • 上面三個場景的跨域資料傳遞

9、WebSocket協議跨域

??WebSocket protocol是HTML5一種新的協議,它實作了瀏覽器與服務器全雙工通信,同時允許跨域通訊,是server push技術的一種很好的實作,
原生WebSocket API使用起來不太方便,我們使用Socket.io,它很好地封裝了webSocket介面,提供了更簡單、靈活的介面,也對不支持webSocket的瀏覽器提供了向下兼容,

小結

??以上就是9種常見的跨域解決方案,jsonp(只支持get請求,支持老的IE瀏覽器)適合加載不同域名的js、css,img等靜態資源;CORS(支持所有型別的HTTP請求,但瀏覽器IE10以下不支持)適合做ajax各種跨域請求;Nginx代理跨域和nodejs中間件跨域原理都相似,都是搭建一個服務器,直接在服務器端請求HTTP介面,這適合前后端分離的前端專案調后端介面,document.domain+iframe適合主域名相同,子域名不同的跨域請求,postMessage、websocket都是HTML5新特性,兼容性不是很好,只適用于主流瀏覽器和IE10+,


11.http狀態碼

HTTP狀態碼總的分為五類:

1開頭:資訊狀態碼

2開頭:成功狀態碼

3開頭:重定向狀態碼

4開頭:客戶端錯誤狀態碼

5開頭:服務端錯誤狀態碼

1XX:資訊狀態碼

狀態碼含義描述
100繼續初始的請求已經接受,請客戶端繼續發送剩余部分
101切換協議請求這要求服務器切換協議,服務器已確定切換

2XX:成功狀態碼

狀態碼含義描述
200成功服務器已成功處理了請求
201已創建請求成功并且服務器創建了新的資源
202已接受服務器已接受請求,但尚未處理
203非授權資訊服務器已成功處理請求,但回傳的資訊可能來自另一個來源
204無內容服務器成功處理了請求,但沒有回傳任何內容
205重置內容服務器處理成功,用戶終端應重置檔案視圖
206部分內容服務器成功處理了部分GET請求

3XX:重定向狀態碼

狀態碼含義描述
300多種選擇針對請求,服務器可執行多種操作
301永久移動請求的頁面已永久跳轉到新的url
302臨時移動服務器目前從不同位置的網頁回應請求,但請求仍繼續使用原有位置來進行以后的請求
303查看其他位置請求者應當對不同的位置使用單獨的GET請求來檢索回應時,服務器回傳此代碼
304未修改自從上次請求后,請求的網頁未修改過
305使用代理請求者只能使用代理訪問請求的網頁
307臨時重定向服務器目前從不同位置的網頁回應請求,但請求者應繼續使用原有位置來進行以后的請求

4XX:客戶端錯誤狀態碼

狀態碼含義描述
400錯誤請求服務器不理解請求的語法
401未授權請求要求用戶的身份演驗證
403禁止服務器拒絕請求
404未找到服務器找不到請求的頁面
405方法禁用禁用請求中指定的方法
406不接受無法使用請求的內容特性回應請求的頁面
407需要代理授權請求需要代理的身份認證
408請求超時服務器等候請求時發生超時
409沖突服務器在完成請求時發生沖突
410已洗掉客戶端請求的資源已經不存在
411需要有效長度服務器不接受不含有效長度表頭欄位的請求
412未滿足前提條件服務器未滿足請求者在請求中設定的其中一個前提條件
413請求物體過大由于請求物體過大,服務器無法處理,因此拒絕請求
414請求url過長請求的url過長,服務器無法處理
415不支持格式服務器無法處理請求中附帶媒體格式
416范圍無效客戶端請求的范圍無效
417未滿足期望服務器無法滿足請求表頭欄位要求

5XX:服務端錯誤狀態碼

狀態碼含義描述
500服務器錯誤服務器內部錯誤,無法完成請求
501尚未實施服務器不具備完成請求的功能
502錯誤網關服務器作為網關或代理出現錯誤
503服務不可用服務器目前無法使用
504網關超時網關或代理服務器,未及時獲取請求
505不支持版本服務器不支持請求中使用的HTTP協議版本

12.MVVM模式

MVVM 由 Model、View、ViewModel 三部分構成,Model 層代表資料模型,也可以在Model中定義資料修改和操作的業務邏輯;View 代表UI 組件,它負責將資料模型轉化成UI 展現出來,ViewModel 是一個同步View 和 Model的物件,

在MVVM架構下,View 和 Model 之間并沒有直接的聯系,而是通過ViewModel進行互動,Model 和 ViewModel 之間的互動是雙向的, 因此View 資料的變化會同步到Model中,而Model 資料的變化也會立即反應到View 上

ViewModel 通過雙向資料系結把 View 層和 Model 層連接了起來,而View 和 Model 之間的同步作業完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作DOM, 不需要關注資料狀態的同步問題,復雜的資料狀態維護完全由 MVVM 來統一管理,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/224039.html

標籤:其他

上一篇:兩邊寬度固定,中間自適應的布局實作總結(重點學習網格布局)

下一篇:cgb2007-京淘day16

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more