本篇文章帶大家了解一下Node中的Buffer,并聊聊瀏覽器的事件循環(huán),希望對大家有所幫助!
Buffer 的使用
數(shù)據(jù)的二進制
-
計算機中所有的內(nèi)容:文字、數(shù)字、圖片、音頻、視頻最終都會使用二進制來表示
-
JS
可以直接去處理非常直觀的數(shù)據(jù):比如字符串,我們通常展示給用戶的也是這些內(nèi)容 -
但你可能會以為JS也能夠處理圖片
- 事實上在網(wǎng)頁端,圖片一直是交給瀏覽器來處理的
JS
或者HTML
,只是負責告訴瀏覽器圖片的地址- 瀏覽器負責發(fā)送請求獲取這個圖片,并且最終將這個圖片給渲染出來
-
但是對于服務端來說是不一樣的
- 服務端要處理的本地文件類型相對較多
- 比如某一個保存文本的文件并不是使用
utf-8
進行編碼的,而是用GBK
,那么我們必須讀取到他們的二進制數(shù)據(jù),再通過GKB轉換成對應的文字 - 比如我們需要讀取的是一張圖片數(shù)據(jù)(二進制),再通過某些手段對圖片數(shù)據(jù)進行二次的處理(裁剪、格式轉換、旋轉、添加濾鏡),Node中有一個名為
sharp
的庫,就是負責讀取圖片或者傳入圖片的Buffer
對其再進行處理的 - 比如在
Node
中通過TCP
建立長連接,TCP傳輸?shù)氖亲止?jié)流,我們需要將數(shù)據(jù)轉成字節(jié)再進行傳入,并且需要知道傳輸字節(jié)的大?。蛻舳诵枰鶕?jù)大小來判斷讀取多少內(nèi)容)
Buffer和二進制
-
我們會發(fā)現(xiàn),對于前端開發(fā)來說,通常很少會和二進制打交道,但是對于服務器端來說,為了實現(xiàn)很多功能,我們必須直接去操作其二進制的數(shù)據(jù)
-
所以
Node
為了可以方便開發(fā)者完成