1. 程式人生 > >Web開發基礎-Node.js-01

Web開發基礎-Node.js-01

腳本文件 環境 class 好處 上下文 網站 報文 cpu mar

01-瀏覽器工作原理

1)人機交互部分(ui)

2)網絡請求部分(socket)

3)javascript引擎

4)渲染引擎(解析html,css)

5)數據存儲部分(cookie,本地存儲等)

--渲染引擎介紹

工作原理:

解析html,構建dom樹

構建渲染樹

對渲染樹布局

繪制渲染樹,調用操作系統底層API進行繪圖操作


02渲染器工作原理-WEB-worker

簡介:

JavaScript 語言采用的是單線程模型,也就是說,所有任務只能在一個線程上完成,一次只能做一件事。前面的任務沒做完,後面的任務只能等著。隨著電腦計算能力的增強,尤其是多核 CPU 的出現,單線程帶來很大的不便,無法充分發揮計算機的計算能力。

----------重點------------

為 JavaScript 創造多線程環境,允許主線程創建 Worker 線程,將一些任務分配給後者運行。在主線程運行的同時,Worker 線程在後臺運行,兩者互不幹擾。等到 Worker 線程完成計算任務,再把結果返回給主線程。這樣的好處是,一些計算密集型或高延遲的任務,被 Worker 線程負擔了,主線程(通常負責 UI 交互)就會很流暢,不會被阻塞或拖慢。

Worker 線程一旦新建成功,就會始終運行,不會被主線程上的活動(比如用戶點擊按鈕、提交表單)打斷。這樣有利於隨時響應主線程的通信。但是,這也造成了 Worker 比較耗費資源,不應該過度使用,而且一旦使用完畢,就應該關閉。

----------使用須知---------

(1)同源限制

分配給 Worker 線程運行的腳本文件,必須與主線程的腳本文件同源。

(2)DOM 限制

Worker 線程所在的全局對象,與主線程不一樣,無法讀取主線程所在網頁的 DOM 對象,也無法使用document、window、parent這些對象。但是,Worker 線程可以使用navigator對象和location對象。

(3)通信聯系

Worker 線程和主線程不在同一個上下文環境,它們不能直接通信,必須通過消息完成。

(4)腳本限制

Worker 線程不能執行alert()方法和confirm()方法,但可以使用 XMLHttpRequest 對象發出 AJAX 請求。

(5)文件限制

Worker 線程無法讀取本地文件,即不能打開本機的文件系統(file://),它所加載的腳本,必須來自網絡。

------詳見-------

阮一峰


02-渲染器工作原理

1、概述
渲染引擎的主要職責是在瀏覽器屏幕上顯示請求的頁面。
渲染引擎可以顯示HTML和XML文檔和圖像。如果您使用額外的插件,引擎還可以顯示不同類型的文檔,如PDF。
2、渲染引擎
Gecko - 火狐
WebKit - Safari
Blink - Chrome,Opera
3、渲染過程
解析HTML以構造DOM樹
構建渲染樹
布局渲染樹
繪制渲染樹
4、href=https://segmentfault.com/a/1190000014738736----詳見-----
5、名詞解釋
SPA:Single pages web application/咳咳
Web Workers:http://www.ruanyifeng.com/blog/2018/07/web-worker.html?20190318210447#comment-last
---------額外---------
https://blog.csdn.net/u010794365/article/details/77982768
https://segmentfault.com/
http://www.ruanyifeng.com/blog/
https://github.com/NationalSecurityAgency/ghidra


03-瀏覽器工作流程

對url進行請求報文封裝,尋找服務器ip,服務器解析請求報文,生成響應報文,解析報文,生成DOM樹,構建渲染樹,布局渲染樹,繪制渲染樹。


04-了解http請求處理響應


05-Node.js了解

簡介
1、Node.js開發平臺,JavaScript開發語言
2、集成chrome V8JavaScript引擎,
3、可用的API
能力:
1、命令行程序
2、借助第三方開發界面應用程序(GUI)
3、開發網站
Node.js全棧:MEAN -MongoDB, Express,Angular,Node.js
特點:
1、事件驅動
2、非阻塞 I/O模型:輸入輸出
3、單線程
4、npm

文檔:

  • https://cnodejs.org/
  • node.js 學習社區



Web開發基礎-Node.js-01