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

HTML5:網頁套接字與網頁工作者

Oct 17, 2016 am 09:52 AM

做練習遇到了一個選擇題,是關於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

熱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 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

h5項目怎麼運行 h5項目怎麼運行 Apr 06, 2025 pm 12:21 PM

運行 H5 項目需要以下步驟:安裝 Web 服務器、Node.js、開發工具等必要工具。搭建開發環境,創建項目文件夾、初始化項目、編寫代碼。啟動開發服務器,使用命令行運行命令。在瀏覽器中預覽項目,輸入開發服務器 URL。發布項目,優化代碼、部署項目、設置 Web 服務器配置。

H5頁面製作究竟指什麼 H5頁面製作究竟指什麼 Apr 06, 2025 am 07:18 AM

H5 頁面製作是指使用 HTML5、CSS3 和 JavaScript 等技術,創建跨平台兼容的網頁。其核心在於瀏覽器解析代碼,渲染結構、樣式和交互功能。常見技術包括動畫效果、響應式設計和數據交互。為避免錯誤,應使用開發者工具調試;而性能優化和最佳實踐則包括圖像格式優化、減少請求和代碼規範等,以提高加載速度和代碼質量。

h5怎麼製作點擊圖標 h5怎麼製作點擊圖標 Apr 06, 2025 pm 12:15 PM

製作 H5 點擊圖標的步驟包括:在圖像編輯軟件中準備方形源圖像。在 H5 編輯器中添加交互性,設置點擊事件。創建覆蓋整個圖標的熱點。設置點擊事件的操作,如跳轉頁面或觸發動畫。導出 H5 文檔為 HTML、CSS 和 JavaScript 文件。將導出的文件部署到網站或其他平台。

如何使用地理位置API處理用戶位置隱私和權限? 如何使用地理位置API處理用戶位置隱私和權限? Mar 18, 2025 pm 02:16 PM

本文討論了使用GeOlocation API管理用戶位置隱私和權限,並強調要求權限,確保數據安全性並遵守隱私法律的最佳實踐。

H5頁面製作適合哪些應用場景 H5頁面製作適合哪些應用場景 Apr 05, 2025 pm 11:36 PM

H5(HTML5)適合應用於輕量級應用,如營銷活動頁面、產品展示頁面和企業宣傳微網站。它優勢在於跨平台性和豐富的交互性,但局限性在於復雜的交互和動畫、本地資源訪問和離線功能。

如何將HTML5拖放API用於交互式用戶界面? 如何將HTML5拖放API用於交互式用戶界面? Mar 18, 2025 pm 02:17 PM

本文介紹瞭如何使用HTML5拖放API來創建交互式用戶界面,詳細介紹了使元素可拖動的步驟,處理關鍵事件並通過自定義反饋來增強用戶體驗。它還討論了一個常見的陷阱

html下一頁功能 html下一頁功能 Apr 06, 2025 am 11:45 AM

<p>可以通過 HTML 創建下一頁功能,步驟包括:創建容器元素、分割內容、添加導航鏈接、隱藏其他頁面、添加腳本。該功能允許用戶瀏覽分段的內容,每次只顯示一頁,適用於展示大量數據或內容。 </p>

H5頁面製作是否需要持續維護 H5頁面製作是否需要持續維護 Apr 05, 2025 pm 11:27 PM

H5頁面需要持續維護,這是因為代碼漏洞、瀏覽器兼容性、性能優化、安全更新和用戶體驗提升等因素。有效維護的方法包括建立完善的測試體系、使用版本控制工具、定期監控頁面性能、收集用戶反饋和製定維護計劃。

See all articles