搜尋
首頁web前端H5教程HTML5:網頁套接字與網頁工作者

做練習遇到了一個選擇題,是關於web worker的,問web worker會不會影響頁面效能?補習功課之後,答案是不會影響。

查閱了相關資料學習web worker,又遇到了web socket,整理如下:

web socket 和 worker 的作用:為建立高效能的web應用提供了新的參考方案。

web socket提供更有效率的傳輸協議,web worker提供多執行緒提高web應用運算效率。

一.web socket

1.web socket是一種協議,本質上和http,tcp一樣。協議是用來說明數據是如何傳輸的,寫過一個小的在線聊天使用了socket.io,之後總結這個項目。

2.web socket的前綴有兩種:(1)ws://  不是加密的。 (2)wss://  是加密的。

3.客戶端和服務端進行web socket互動的方式也可以理解為「http握手+ tcp資料傳輸」的方式:

(1)瀏覽器(支援Websocket的瀏覽器)像HTTP一樣,發起一個請求,然後等待服務端的回應;

(2)伺服器返回握手回應,告訴瀏覽器請將後續的資料按照websocket制定的資料格式傳過來;

(3)瀏覽器和伺服器的socket連線不中斷,此時這個連接和http不同的是它是雙工的了;

(4)瀏覽器和伺服器有任何需要傳遞的資料的時候使用這個長連接進行資料傳遞。

註:HTTP握手:是因為瀏覽器和伺服器在建立長連線的握手過程是按照HTTP1.1的協定發送的,有Request,Request Header, Response, Response Header。但是不同的是Header裡面的欄位是有特定意義的。

     TCP傳輸: 主要體現在建立長連線後,瀏覽器是可以傳送數據,伺服器也可以傳送請求的給瀏覽器。當然它的資料格式並不是自己定義的,是在要傳輸的資料外層有ws協定規定的外層包的。

4.資料傳輸過程:websocket的資料傳輸形式是:frame。例如會將一則訊息分成幾個frame,依照先後順序傳送出去。這樣做會有幾個好處:

(1)大數據的傳輸可以分片傳輸,不用考慮到資料大小導致的長度標誌位元不足夠的情況。

(2)和http的chunk一樣,可以邊產生資料邊傳遞訊息,也就是提高傳輸效率。

5.客戶端使用web socket的語法:JavaScript。

   服務端:多種web框架支援。

二.web worker

1.當在 HTML 頁面中執行腳本時,頁面的狀態是不可回應的,直到腳本已完成。

而web worker 是運行在背景的 JavaScript,獨立於其他腳本,不會影響頁面的效能。您可以繼續做任何願意做的事情:點擊、選取內容等等,而此時 web worker 在後台運行。

除了DOM操作之外,理論上任何JS腳本任務都可放入worker中執行;語法上的限制,則是無法跨域存取JS。 worker常用於需要消耗大量時間和CPU資源的複雜計算,以換來前台用戶操作的友好型;換句話說,從用戶體驗上看,提高了服務性能。

2.web worker使用:(當我們建立web worker 物件後,它會繼續監聽訊息(即使在外部腳本完成之後)直到其被終止為止。)

(1)透過向web worker 添加一個"onmessage " 事件監聽器來取得接受到的訊息。

    發送訊息:postMessage()

    終止web worker,並釋放瀏覽器/電腦資源: terminate() 

var worker =new Worker("worker_job.js"); //创建一个Worker对象并向它传递将在新线程中执行的脚本的URL

 worker.postMessage("hello world");     //向worker发送数据
 
 worker.onmessage =function(evt){     //接收worker传过来的数据函数
   console.log(evt.data);              //输出worker发送来的数据
 }

(2)透過新增事件監聽器來處理內部函數透過新增事件,執行緒通訊:

self.addEventListener('message', function(e) {
    var data = e.data;
    if(data == 'init')
        init();
    else
        ...
}, false);

self.postMessage("hello worker");

參考文件:

web socket and web worker 基礎原理及使用

HTTP協定之chunk編碼(分塊傳輸編碼)

七種web socket框架的效能比較

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
H5代碼:Web開發人員的最佳實踐H5代碼:Web開發人員的最佳實踐Apr 16, 2025 am 12:14 AM

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

H5:網絡標準和技術的發展H5:網絡標準和技術的發展Apr 15, 2025 am 12:12 AM

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5是HTML5的速記嗎?探索細節H5是HTML5的速記嗎?探索細節Apr 14, 2025 am 12:05 AM

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5和HTML5:網絡開發中常用的術語H5和HTML5:網絡開發中常用的術語Apr 13, 2025 am 12:01 AM

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5指的是什麼?探索上下文H5指的是什麼?探索上下文Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:工具,框架和最佳實踐H5:工具,框架和最佳實踐Apr 11, 2025 am 12:11 AM

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5的遺產:當前了解H5HTML5的遺產:當前了解H5Apr 10, 2025 am 09:28 AM

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5代碼:可訪問性和語義HTMLH5代碼:可訪問性和語義HTMLApr 09, 2025 am 12:05 AM

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。