當前位置:首頁 » 網頁前端 » webworkersapi
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

webworkersapi

發布時間: 2022-09-05 23:21:59

1. HTML5 中引入了哪些新的JavaScript API具體有什麼作用

簡而言之,HTML5就是由新的標記引進的新元素形式和為現有元素新增的某些屬性,與新的JavaScript APIs的結合體。那HTML5中引入了新增加了哪些新標簽與JavaScript API結合體呢?我這里例舉了我們平時最常用的幾種:
1、 Canvas API是一個具有完整功能的JavaScript API並伴隨產生了新HTML5元素<Canvas>。通過Canvas API,您可以利用它和WebGL在瀏覽器中創建一個2 D或3 D繪圖場景,
2、 Contacts API主要應用在移動設備上,為瀏覽器提供對用戶通用通訊錄的訪問。它在瀏覽器內建立一個本地存儲庫,來存儲聯系人信息。而不是通過訪問讓你所有聯系人信息直接保存在Google +、Facebook或其他網站上, Contacts API將允許您有本地存儲庫,網站可以通過本地存儲庫訪問存儲的聯系人信息。現在的主流瀏覽器都支持Contacts API
3、 通過File API 瀏覽器可以直接訪問用戶計算機的沙箱區域將數據存儲到文件系統。
4、 在HTML5中Forms API得到了發展,內置了驗證功能,在接下來的課程中,您將會學習到如何通過使用內置的規則實現表單驗證,以及如何添加自定義規則進行表單驗證。
5、 允許瀏覽器請求用戶的位置信息,一旦獲權,瀏覽器可以通過許多不同的方法來確定計算機或設備的實際位置,它將會有一個比例尺來確認精確的地點位置。通過該API能獲取經緯度等數據,非常適合應用程序定位。
6、 Media Capture的功能是將本地設備通過JavaScript將與瀏覽器相連。你將能夠訪問攝像頭,攝像頭,等等。
7、 Messaging API被用來與其他API一起使用,比如web web workers,這個我們將將在後面的課程中進一步討論。
8、 選擇(Selection)API的就像jQuery庫一樣運用非常廣泛。在流行jQuery 、HTML5的今天,試圖從文檔對象模型選擇元素是比較復雜的。jQuery彌補了這一差距。其實變得很容易,HTML5將高級選擇功能直接內置在瀏覽器中。使得瀏覽器的選擇性能得到很大的改善,甚至於JQuery選擇工具一樣速度。我並不是貶低jQuery。jQuery的優勢就是DOM的選擇,但是,jQuery不僅僅只提供了選擇功能,事實上,在本課程中未來的演示的案例中,您將清楚的知道什麼時候使用jQuery會更加便利,然後什麼時候切換到本地選擇會更加方便。.
9、 Server-Sent Events API:一個網頁獲取新的數據通常需要發送一個請求到伺服器,也就是向伺服器請求的頁面.使用Server-Sent Events API,伺服器可以在任何時刻向我們的web頁面推送數據和信息.這些被推送進來的信息可以在這個頁面上作為事件/數據來處理。伺服器推送事件(Server-Sent Events)的優點在於: 只要響應的內容類型是事件/數據流,事件就通過HTTP發送,瀏覽器能夠識別該傳輸。
10、 Web Notifications API即web消息提醒,它可以使頁面可以發出通知,通知將被顯示在頁面之外的系統層面上(通常使用操作系統的標准通知機制,但是在不同的平台和瀏覽器上的表現會有差異)。這個功能使 web 應用可以向用戶發送信息,即使應用處於空閑狀態。最明顯的用例之一是一個網頁版電子郵件應用程序,每當用戶收到了一封新的電子郵件都需要通知用戶,即使用戶正在使用另一個應用程序。在2013年夏天,這個API還是在被W3C在試用,並沒有被很多瀏覽器所應用。
11、 Web Sockets API:Web Sockets是一種基於 ws 協議的技術,它使得建立全雙工連接成為可能。websocket 常見於瀏覽器中,但是這個協議不受使用平台的限制。它允許你收發信息到伺服器端。這個典型的示例就是即時通信。你建立一個對話,如果沒有sockets,你可能會去從伺服器中去獲取新的消息。如果具有了sockets,當消息通過瀏覽器發到服務端的時候,對方的客戶端通過已經建立好的sockets鏈接就能自動的接收到信息。
12、 Web存儲,它有兩種版本,本地存儲和會話存儲。就WEB開發來說,一個會話就是你通過瀏覽器與伺服器之間的一次通話,所以,如果你熟悉伺服器端web開發,會話存儲可能不是頭一次聽說。基本上,只要用戶頁在頁面上的統一個會話內,工作數據就不會丟失。如果瀏覽器關閉或者轉向另一個會話,那麼此時數據就不復存在。本地存儲在不同會話之間仍然能保存數據, 本地存儲與cookie 和IndexedDB相比,它可以讓你來貯存更多的信息。Web存儲與cookie,數據不發送到請求的伺服器而是保存在客戶端。
這些都是HTML5中新加入的一些比較常用的功能API,如果你想要系統的了解HTML5的新功能,推薦你去一個叫做秒秒學的教程網站上看看,裡面有專門的課程來講解HTML5中的新特性,希望對你有幫助。

2. web前端怎麼調用api介面

1、首先需要確定第三方的介面的基本信息:地址、請求方式,參數、返回值,介面模式這里第三方的介面是restful風格的,採用get請求。

3. 如何 爬取 web 服務 api

對於初學者,用maven構建項目並不是一件容易的事,springmvc並不是MVC中的主流,但是本人覺得springmvc比struts要好用,真正做到了零配置。一次使用,就放不下了。
二.准備工作
1.Eclipse 3.7
2.maven
3.Eclipse 需要安裝maven插件。url:maven - http:// download.eclipse.org/technology/m2e/releases 。安裝maven-3.0.4。並且選擇本地的maven,如下圖:


三.構建工程
1.用maven插件構建項目框架
maven具有強大構建功能,使用maven可以構建多種不同類型的工程。這里我們構建maven-archetype-webapp類型的項目。在Eclipse->New中選擇other,找到maven Project型。如下圖:

在選完路徑之後,我們選擇構建類型,如下圖:

接下來,填寫工程的Group Id,Artifact Id,如下圖:

這里的Group Id就是大項目的id,Arifact Id就是該項目的Id。就像一個大項目中有許多小項目組成一樣。此時,我們的項目已經成型了,樣子如下圖:

接下來,我們要完善項目的目錄,配置。

2.完善項目
首先,完善目錄,增加重要的source Folder,這個不是簡單的Floder,這些文件夾是會參與編譯的。增加src/main/java,src/test/resources,src/test/java目錄。讓目錄變成標準的maven結構。如下圖:

接下來,改變一些配置:
讓工程的JDK用本地的jdk;
讓工程的字元集為UTF-8;
改變工程的目錄順序;
這些都完成之後,工程目錄應該是如下的樣子:


3.將工程變成web工程
此時,我們的工程還不是標準的web工程,可以在eclipse中增加web工程的特性,選擇工程的Properties,選Project Facets,如下圖:

這里,我們選擇Dynamic Web Mole,版本選擇2.4,這個版本比較通用。如下圖:

此時,我們看到目錄中多了一個WebContent目錄,由於使用maven構建,web目錄是src/main/webapp,所以我們刪除WebContent目錄。接下來,要配置web項目的發布目錄,就是Deployment Assembly,如圖:

test目錄不要發布,WebContent目錄沒有了,所以這三項都刪掉。並且增加src/main/webapp目錄,和Maven Dependenices,完成之後如下圖:

於是,我們的工程就完全是一個web工程了。

4. HTML5 Web Worker是利器還是擺設

Worker能解決兩個問題:解決程序阻塞問題:提升效率。不過Worker還有局限性,它不能操作DOM。解決方法如下:

1、首先在創建之前,檢測所用瀏覽器是否支持它,當前除了IE瀏覽器以外,其它主流瀏覽器都是支持的。

5. HTLM5標準是什麼

HTML 5是HTML下一個的主要修訂版本,現在仍處於發展階段。目標是取代1999年所定訂的HTML 4.01和XHTML 1.0 標准,以期能在互聯網應用迅速發展的時候,使網路標准達到符合當代的網路需求。廣義論及HTML5時,實際指的是包括HTML、CSS和JavaScript在內的一套技術組合。它希望能夠減少瀏覽器對於需要插件的豐富性網路應用服務(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,與Oracle JavaFX的需求,並且提供更多能有效增強網路應用的標准集。

新標記

HTML 5提供了一些新的元素和屬性,反映典型的現代用法網站。其中有些是技術上類似<div>和<span>標簽,但有一定含義,例如<nav>(網站導航塊)和<footer>。這種標簽將有利於搜索引擎的索引整理、小屏幕裝置和視障人士使用。同時為其他瀏覽要素提供了新的功能,通過一個標准介面,如<audio>和<video>標記。[3]
一些過時的HTML 4標記將取消,其中包括純粹用作顯示效果的標記,如<font>和<center>,因為它們已經被CSS取代。還有一些透過DOM的網路行為。

新應用程序介面(API)

除了原先的DOM介面,HTML5增加了更多樣化的API[4]:
即時二維繪圖
Convas API:有關動態產出與渲染圖形、圖表、圖像和動畫的API。
定時媒體播放
HTML5 音頻與視頻:HTML5里新增的元素,它們為開發者提供了一套通用的、整合的、腳本式的處理音頻與視頻的API,而無需安裝任何插件。
儲存
Web Storage API:HTML5 Web存儲(也就是 DOMStorage),該API令在多個Web請求間持久化資料變得簡單。
離線
編輯
拖放
通訊/網路
Communication APIs:構建實時和跨源(cross-origin)通訊的兩大基礎: 跨文檔通訊(Cross Document Messaging)與 XMLHttpRequest Level 2。
後退按鈕管理
MIME和協議處理程序時表頭登記
Geolocation API:使用者可共享地理位置,並在Web應用的協助下享用位置感知服務(location-aware services)。
Web Sockets API:定義全雙工傳輸的通訊通道,它在Web之上通過單個Sockets進行工作。
WebSocket是HTML5中非常重要的新特性,允許使用者在瀏覽器中實作雙向通信,以達伺服器得以實作對映的資料即時推送技術,這個技術的意義在於我們可以通過網頁實作以往難以達成的應用。使用者不再需要頻繁的更新頁面以獲取新資料,新資料會自動由伺服器端推送至使用者的電腦畫面上。
Web Workers API:為Web應用提供後台處理的能力。

與HTML 4的不同之處

以下為大略的不同之處,與例子:
新的解析順序:不再基於SGML
新的元素:section, video, progress, nav, meter, time, aside, canvas, command, datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark, output, rp, rt, ruby, source, summary, wbr
input元素的新屬性:日期和時間,email, url
新的通用屬性:ping(用於a與area), charset(用於meta), async(用於script)
全域屬性:id, tabindex, repeat
移除元素:acronym, applet, basefont, big, center, dir, font, frame, frameset, isindex, noframes, s, strike, tt, u

異常處理

HTML5(text/html)瀏覽器將在錯誤語法的處理上更加靈活。HTML5在設計時保證舊的瀏覽器能夠安全地忽略掉新的HTML5代碼。與HTML4.01相比,HTML5給出了解析的詳細規則,力圖讓不同的瀏覽器即使在發生語法錯誤時也能返回相同的結果。

6. 騰訊地圖webservice api 支持 https方式的調用嗎

web service在企業應用中常常被用作不同系統之間的介面方式。但是如果沒有任何安全機制的話,顯然是難以委以重任的。比較直接的web service加密方式就是使用HTTPS方式(SSL證書加密)加密連接,並且只允許持有信任證書的客戶端連接,即SSL雙向認證。這樣就保證了連接來源的可信度以及數據在傳輸過程中沒有被竊取或篡改。通過HTTPS加密方式訪問web service具體方法如下:
【准備工作】
(1)檢查JDK的環境變數是否正確。本文使用JDK 1.6
(2)准備web伺服器,這里選用TOMCAT 6.0
(3)准備web service服務端和客戶端。
【生成證書】
這里用到的文件,這里存放在D:/SSL/文件夾內,其中D:/SSL/server/內的文件是要交給伺服器用的,D:/SSL/client/內的文件是要交給客戶端用的。
1生成服務端證書
開始-運行-CMD-在dos窗口執行下執行命令:
keytool -genkey -v -aliastomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650-storepass zljzlj -keypass zljzlj
說明:
keytool 是JDK提供的證書生成工具,所有參數的用法參見keytool –help
-genkey 創建新證書
-v 詳細信息
-alias tomcat 以」tomcat」作為該證書的別名。這里可以根據需要修改
-keyalg RSA 指定演算法
-keystoreD:/SSL/server/tomcat.keystore 保存路徑及文件名
-dname"CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 證書發行者身份,這里的CN要與發布後的訪問域名一致。但由於這里是自簽證書,如果在瀏覽器訪問,仍然會有警告提示。真正場景中建議申請CA機構(wosign)簽發的SSL證書更安全。
-validity 3650證書有效期,單位為天
-storepass zljzlj 證書的存取密碼
-keypass zljzlj 證書的私鑰
2 生成客戶端證書
執行命令:
keytool ‐genkey ‐v ‐aliasclient ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dname"CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validity 3650 ‐storepassclient ‐keypass client
說明:
參數說明同上。這里的-dname 證書發行者身份可以和前面不同,到目前為止,這2個證書可以沒有任何關系。下面要做的工作才是建立2者之間的信任關系。
3 導出客戶端證書
執行命令:
keytool ‐export ‐aliasclient ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client‐rfc ‐file D:/SSL/client/client.cer
說明:
-export 執行導出
-file 導出文件的文件路徑
4 把客戶端證書加入服務端證書信任列表
執行命令:
keytool ‐import ‐aliasclient ‐v ‐file D:/SSL/client/client.cer ‐keystoreD:/SSL/server/tomcat.keystore ‐storepass zljzl
說明:
參數說明同前。這里提供的密碼是服務端證書的存取密碼。
5 導出服務端證書
執行命令:
keytool -export -aliastomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -fileD:/SSL/server/tomcat.cer
說明:
把服務端證書導出。這里提供的密碼也是服務端證書的密碼。
6 生成客戶端信任列表
執行命令:
keytool -import -fileD:/SSL/server/tomcat.cer -storepass zljzlj -keystoreD:/SSL/client/client.truststore -alias tomcat –noprompt
說明:
讓客戶端信任服務端證書
【 配置服務端為只允許HTTPS連接】
1 配置Tomcat 目錄下的/conf/server.xml
Xml代碼:
<Connectorport="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"clientAuth="true"
sslProtocol="TLS"keystoreFile="D:/SSL/server/tomcat.keystore"
keystorePass="zljzlj"truststoreFile="D:/SSL/server/tomcat.keystore"
truststorePass="zljzlj" />
說明:
在server.xml裡面這段內容本來是被注釋掉的,如果想使用https的默認埠443,請修改這里的port參數。其中的clientAuth="true" 指定了雙向證書認證。
2 配置服務端項目web.xml
在<welcome-file-list>之後增加Xml代碼:
<!-- 強制SSL配置,即普通的請求也會重定向為SSL請求 -->
<security-constraint>
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/service/*</url-pattern><!--全站使用SSL <url-pattern>/*</url-pattern>-->
</web-resource-collection>
<user-data-constraint>
<description>SSL required</description>
<!-- CONFIDENTIAL: 要保證伺服器和客戶端之間傳輸的數據不能夠被修改,且不能被第三方查看到 -->
<!-- INTEGRAL: 要保證伺服器和client之間傳輸的數據不能夠被修改 -->
<!-- NONE: 指示容器必須能夠在任一的連接上提供數據。(即用HTTP或HTTPS,由客戶端來決定)-->
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
說明:
這里限制了WEB service服務地址的訪問必須為https連接。<url-pattern>要根據你的web service服務地址配置。
【修改客戶端代碼】
在執行訪問之前,增加Java代碼:
System.setProperty("javax.net.ssl.trustStore","D:/SSL/client/client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword","zljzlj");
System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
System.setProperty("javax.net.ssl.keyStore","D:/SSL/client/client.p12");
System.setProperty("javax.net.ssl.keyStorePassword","client");
StringendPoint="https://127.0.0.1:8443/easbCut/services/ApplyFormService";
...
通過設置參數來指定客戶端連接時所使用的客戶端證書,這里還可以採用修改JVM啟動參數的的方式來執行,但出於不影響其他功能的考慮,這里採用System.setProperty的方式來設置這些參數,在使用結束後,可以還原這些參數配置。做為客戶端的開發者,可以把拿到的證書文件後,只執行步驟3。

7. web workers何時使用

創建一個Worker

通常,與web worker相關的代碼都放在一個獨立的JavaScript文件中。父線程通過在Worker構造函數中指定一個JavaScript文件的鏈接來創建一個新的worker,它會非同步載入並執行這個JavaScript文件。

var primeWorker = new Worker('prime.js');


啟動Worker

要啟動一個Worker,則父線程向worker傳遞一個信息,如下所示:

var current = $('#prime').attr('value');
primeWorker.postMessage(current);
父頁面可以通過postMessage介面與worker進行通信,這也是跨源通信(cross-origin messaging)的一種方式。通過postMessage介面除了可以向worker傳遞私有數據類型,它還支持JSON數據結構。但是,你不能傳遞函數,因為函數也許會包含對潛在DOM的引用。

「父線程和worker線程有它們各自的獨立空間,信息主要是來回交換而不是共享。」
信息在後台運行時,先在worker端序列化,然後在接收端反序列化。鑒於此,不推薦向worker發送大量的數據。

父線程同樣可以聲明一個回調函數,來偵聽worker完成任務後發回的消息。這樣,父線程就可以在worker完成任務後採取些必要的行動,比如更新DOM元素。如下代碼所示:

primeWorker.addEventListener('message', function(event){
console.log('Receiving from Worker: '+event.data);
$('#prime').html( event.data );
});
event對象包含兩個重要屬性:

target:用來指向發送信息的worker,在多元worker環境下比較有用。
data:由worker發回給父線程的數據。
worker本身是包含在prime.js文件中的,它同時偵聽message事件,從父線程中接收信息。它同樣通過postMessage介面與父線程進行通信。

self.addEventListener('message', function(event){
var currPrime = event.data, nextPrime;
setInterval( function(){
nextPrime = getNextPrime(currPrime);
postMessage(nextPrime);
currPrime = nextPrime;
}, 500);
});
在本文例子中,我們尋找下一個最大的質數,然後不斷將結果發回至父線程,同時不斷更新界面以顯示新的值。在worker的代碼中,欄位self和this都是指向全局作用域。Worker既可以添加事件偵聽器來偵聽message事件,也可以定義一個onmessage處理器,來接收從父線程發回的消息。

尋找下一個質數的例子顯然不是worker的理想用例,但是在此選用這個例子是為了說明消息傳遞的原理。之後,我們會挖掘些可以通過web worker獲得益處的實際用例。

8. 什麼是WebService還有什麼是api

api:應用程序開發介面。一般是提供一些庫文件,然後調用。優點:效率高,集成度好;缺點:需要本地修改代碼,依賴性比較大。

webservice:顧名思義是網站式服務,也就是說通過網址接入的方式訪問服務,不需要本地調用api。優點:通過網路訪問,與語言無關;需要網路支持,受網路及服務端性能限制。

視圖:估計你的意思是通過遠程訪問資料庫視圖吧,這種就直接訪問人家資料庫了,需要的是資料庫驅動和網路支持。優點:直接看到數據,便於處理;缺點:需要明白人家的數據結構和邏輯,不透明。

ftp:這種就比較牽強了,通過ftp交換文件,解析文件來傳遞數據信息。優點:傳統的ftp協議很通用,便於部署維護;缺點:需要自己解析和處理文件格式。

9. 在webworker線程中可以使用indexedDB/localstorage嗎

創建web worker
可以使用web workerAPI輕松的創建一個worker實例,例如:
var worker = new Worker("worker.js")
上面個的這行代碼將會載入worker.js這個文件,然後再後台運行。你需要調用Worker()這個構造函數,並將需要在後台執行的文件的URI作為參數。如果你想從worker中得到數據,你需要注冊該worker的onmessage事件處理函數,例如:
var worker = new Worker("router.js");
worker.onmessage = function(event){
console.log("called here form the router");
}
同樣你也可以通過addEventListener來監聽你的worker,
var worker = new Worker("router.js")
worker.addEventListener('message',function(event){
console.log("called here form the router");
},false);
worker.postMessage();//啟動這個worker
web worker能做什麼?不能做什麼?
worker是不能訪問「父」頁面(即創建頁面)的dom,他不能訪問以下任何一個對象:
window 對象
document對象
parent對象
並且最後同樣重要的是,在worker中不能使用依賴以上對象的javascript庫,像jQuery。
由於多線程性質,web worker 只能訪問某些特定的javascript特性。下面這些列表時他可以訪問的
navigator對象
location對象(只讀)
XMLHttpRequest方法
atob()、btoa()方法,可以講base64編碼轉成二進制數據,或逆操作
setTimeout() / clearTimeout() and setInterval() / clearInterval()
mp()
應用程序緩存
可以通過importScripts()方法,導入外部js
創建次級worker 即 worker中創建worker
web worker 的執行
在web worker線程自身中,代碼會自上而下的同步執行,之後他們會進入到事件響應的非同步階段。這樣,就允許將web worker分成兩大類:
注冊了onmessage事件相應程序的web worker,用來長時間執行任務,並且在後台執行。這個web worker是不會推出的,因為他一直監聽新的消息
另一種是沒有注冊onmessage事件的web worker,處理一個獨立的任務(可以從web app 主線程中脫離的),例如抓取和解析超大的json對象。這樣的web worker一點操作結束就會退出。(在某些情況下,如果你注冊了callback處理,那麼將會等待所有的callback結束後再退出。)

10. web workers 有哪些api

Web Workers 是一種機制,從一個web應用的主執行線程中分離出一個後台線程,在這個後台線程中運行腳本操作。這個機制的優勢是耗時的處理可以在一個單獨的線程中來執行,與此同時,主線程(通常是UI)可以在毫不堵塞的情況下運行。

Web Workers概念和用法
一個worker是一個使用構造函數(例如:Worker())來創建的對象,在一個命名的JS文件裡面運行,這個文件包含了在worker線程中運行的代碼。Workers不同於現在的window,是在另一個全局上下文中運行的。在專用的workers例子中,是由DedicatedWorkerGlobalScope對象代表了這個上下文環境(標准workers是由單個腳本使用的;共享workers使用的是SharedWorkerGlobalScope)。
在worker線程裡面,你可以運行任何你喜歡的代碼,當然也有一些例外。例如,你不能直接操作在worker裡面的DOM,也不能使用window對象的一些默認方法和屬性。但是,你可以使用window下許多可用的項目,包括WebSockets,類似IndexedDB和Firefox OS獨有的Data Store API這樣的數據存儲機制。更多細節請查閱《Functions and classes available to workers》https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers
Workers和主線程之間是通過系統消息來傳遞數據的。兩邊使用postMessage()方法來發送消息,通過onmessage事件處理程序來應答(消息是包含在Message事件的數據屬性中。)系統消息是復制數據,不是共享數據。
只要workers和父頁面同源,workers會輪流製造新workers。另外,workers會使用XMLHttpRequest作為網路I/O,但是有一個例外,XMLHttpRequest的responseXML和channel屬性永遠返回null。
除了專用workers,還有其他類型的worker:
l 在不同的windows(例如IFrames)運行的多個腳本可以使用共享workers,只要它們和workder同源就可以。共享workers比專用workers略復雜——腳本必須通過一個活動的埠來通信。預知詳情請看《SharedWorker》https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker
l ServiceWorkders本質上是作為web應用間的代理服務,如果可能的話,作為瀏覽器和網路。ServiceWorkers(除其他事情外)致力於創造有效的離線操作,攔截網路請求,基於網路是否可用和伺服器上更新過的資源進行適當的操作。ServiceWorkers也可以推送通知和後台同步API。