新聞中心
不知您是否已注意到,單頁面應(yīng)用程序(Single-page applications,SPA)和漸進(jìn)式Web應(yīng)用程序(Progressive web apps,PWA)正在徹底地改變著企業(yè)Web服務(wù)的交付模式。這兩種新技術(shù)雖然看起來十分相似、甚至經(jīng)常被人們所交替使用,但是實(shí)際上兩者有著本質(zhì)上的區(qū)別。下面讓我們一起來深入研究它們各自的主要特性、以及在服務(wù)交付上的不同之處。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鐵嶺縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鐵嶺縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鐵嶺縣地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
什么是單頁面應(yīng)用程序?
顧名思義,SPA是在單個頁面內(nèi),動態(tài)地加載網(wǎng)站的各項(xiàng)內(nèi)容。從本質(zhì)上講,用戶與頁面交互的每一種內(nèi)容和元素,都會在同一個頁面上完成。這意味著,您在瀏覽此類網(wǎng)站時,無需加載任何單獨(dú)的文檔對象模型(Document Object Models,DOM)。該方法的主要意圖是:通過加載用戶需要使用和查看的所有內(nèi)容,讓它們保持在同一個頁面上,以獲取更好的使用體驗(yàn)。
由此帶來的好處是,SPA可以避免那些在服務(wù)器上渲染各種頁面時,所產(chǎn)生的中斷問題。它在一定程度上消除了,一直以來困惑在Web開發(fā)界的一個問題:如何才能向用戶提供無縫的訪問體驗(yàn)。當(dāng)您在SPA上使用頁面導(dǎo)航服務(wù)時,可能會錯誤地認(rèn)為自己訪問了不同的DOM。而實(shí)際上,您瀏覽的是由單個DOM所預(yù)加載的內(nèi)容。若想將SPA分成單獨(dú)的內(nèi)容部分,我們通常會涉及使用JavaScript視圖,為每個部分提供單一的URL。同時,數(shù)據(jù)鏈路連接器負(fù)責(zé)將各個部分鏈接到主DOM上,并允許您以異步的方式去訪問它們。
盡管目前已有Mint和elm-spa等技術(shù)的興起,但是JavaScript仍然是制作SPA的最常用編程語言。JavaScript會使用async/await函數(shù),讓用戶能夠異步加載動態(tài)和靜態(tài)的內(nèi)容,而不會因?yàn)槟硞€輸入而阻塞另一個請求的輸出。也就是說,SPA能夠在非阻塞的輸入輸出(I/O)系統(tǒng)上流暢運(yùn)行。目前,諸如ReactJS、Vue.js、AngularJS、Ember.js、以及Backbone.js之類的JavaScript框架,都能夠支持SPA的快速開發(fā)。為了方便上手,您可以首先從鏈接--https://www.makeuseof.com/vue-js-beginners-overview/處,獲悉有關(guān)Vue.js的基本概念。
如今,諸如Netflix、YouTube、PayPal、Facebook、Instagram、Twitter、以及Pinterest之類的明星企業(yè),都從交付速度的角度,相繼將其網(wǎng)站服務(wù)轉(zhuǎn)換成為了單頁面應(yīng)用。
什么是漸進(jìn)式Web應(yīng)用程序?
PWA是由Google于2015年推出的。其目標(biāo)是通過構(gòu)建出能夠以直接和漸進(jìn)的方式,與其用戶交互的應(yīng)用程序,實(shí)現(xiàn)在網(wǎng)絡(luò)連接不佳或中斷的情況下,保持用戶的使用體驗(yàn)。
作為另一種Web應(yīng)用程序或軟件,PWA在其功能中使用了各種標(biāo)準(zhǔn)的、新興的Web瀏覽器指南。與SPA的典型初始化內(nèi)容加載不同,PWA架構(gòu)主要是通過一些指南,來實(shí)現(xiàn)可擴(kuò)展性、用戶適應(yīng)性、超快速交付、可安裝性、以及原生性??偟恼f來,用戶可以流暢地與應(yīng)用程序進(jìn)行持續(xù)交互。
作為PWA的核心特征之一,可安裝性保證了用戶可以通過Web瀏覽器,即時地訪問到服務(wù)資源,而無需進(jìn)行任何額外的安裝。當(dāng)然,與任何其他網(wǎng)站一樣,PWA也需要被分配一個URL。漸進(jìn)式Web應(yīng)用程序的獨(dú)特之處在于,它們提供了瞬間傳送內(nèi)容的后臺助手。據(jù)此,您不但可以快速、可靠地獲取Web應(yīng)用頁面,而且可以隨時能夠交互和使用其內(nèi)容和組件。
目前,以Spotify、Slack、以及Uber為首的明星公司,正在使用著由PWA開發(fā)的應(yīng)用程序。
PWA通常擁有一套通用的架構(gòu)規(guī)則,并且通過包含如下屬性,以保證應(yīng)用的正常運(yùn)行:
1. Service Worker
Service Worker可以通過介入頁面導(dǎo)航、以及用戶請求,來輕松地在PWA中交付出各種內(nèi)容。由于緩存API可以存儲針對用戶離線請求的各種響應(yīng),因此它們能夠確保應(yīng)用程序,即便處于沒有網(wǎng)絡(luò)連接的狀態(tài)下,也可以加載相關(guān)的緩存數(shù)據(jù)。
而通過使用promise對象,Service Worker可以根據(jù)用戶的最終請求(同樣即便處于離線狀態(tài)),交付出已經(jīng)下載的內(nèi)容。也就是說,Service Worker使得PWA具有非阻塞性。
2. 安全的上下文
Service Worker需要安全的連接通道(例如HTTPS),以確保所交付內(nèi)容的機(jī)密性。當(dāng)您發(fā)送請求時,Service Worker會在PWA和瀏覽器之間,通過建立一個安全通信,來作為安全的上下文(Secure Context),以防止PWA受到中間人的攻擊(MITM),而產(chǎn)生泄密事件。
3. Web應(yīng)用的清單文件
作為一個JSON文件,Web清單可以通過定義PWA的基本特征,來詳細(xì)指明訪問、發(fā)現(xiàn)和使用PWA內(nèi)容的各項(xiàng)先決條件。該文件通常包括應(yīng)用程序的名稱、其URL、及其組件。此外,清單文件還會包含將Web應(yīng)用程序,轉(zhuǎn)換為可安裝的應(yīng)用,所需要的各項(xiàng)信息。
PWA和SPA之間有何相似之處?
雖然PWA和SPA的后臺邏輯不同,但它們?nèi)匀挥兄恍┕餐c(diǎn)。畢竟,它們都旨在通過提供響應(yīng)式的界面,來改善用戶對于網(wǎng)站服務(wù)的訪問速度和體驗(yàn)。就普通用戶而言,他們無法從單純的界面和交互方式,來分辨這兩類技術(shù)網(wǎng)站。而且兩者都需要向用戶提供一個可訪問的URL。
SPA和PWA之間的主要區(qū)別
PWA和SPA在功能上的差異,主要體現(xiàn)在如下方面:
單頁面應(yīng)用的主要特點(diǎn)
- 它們只能通過瀏覽器被訪問到。
- 盡管并不推薦,但是用戶仍可以通過不安全的網(wǎng)絡(luò)連接(例如HTTP),以獲取服務(wù)。
- 它們原則上并不需要服務(wù)支持人員。
- 由于SPA并不帶有JSON清單文件,因此它們是可卸載的。
- 顧名思義,它們被限制在單頁面上。
- 一旦失去網(wǎng)絡(luò),它們將無法被訪問到。
漸進(jìn)式Web應(yīng)用的主要特點(diǎn)
- 由于具有可安裝性,因此用戶可以通過瀏覽器訪問它們。
- 所有PWA都需要Service Worker,并且它們必須通過安全的網(wǎng)絡(luò)連接(如HTTPS),來傳輸請求。
- 其響應(yīng)會被緩存,并通過promise對象進(jìn)行傳遞。
- 即使在沒有網(wǎng)絡(luò)連接的情況下,它們也可以被訪問到。
- 它們的整體速度比SPA更快。
- 由于帶有一個清單文件,因此它們具有可下載、可安裝、以及易于被訪問等特性。
- PWA可能并非只有一個頁面。
如何根據(jù)交付需求選用SPA和PWA
總的說來,PWA的采用不但改善了一般用戶瀏覽網(wǎng)站的體驗(yàn),而且降低了企業(yè)級應(yīng)用程序的跳轉(zhuǎn)頻率,進(jìn)而為企業(yè)增加營收。另一方面,SPA則使得新媒體應(yīng)用煥然一新,人們不但可以輕松地通過網(wǎng)絡(luò)實(shí)現(xiàn)彼此交互,而且不會遇到頁面加載緩慢等各種窘境。因此,您和您的團(tuán)隊(duì)需要根據(jù)實(shí)際交付需求,為即將構(gòu)建的應(yīng)用服務(wù),從中選擇合適的技術(shù)。
當(dāng)前名稱:單頁面應(yīng)用(SPA)和漸進(jìn)式Web應(yīng)用(PWA)有哪些區(qū)別?
新聞來源:http://fisionsoft.com.cn/article/coggcjc.html


咨詢
建站咨詢
