java-applet
忽略權(quán)限限制
Applet 是一種 Java 程序。它一般運行在支持 Java 的 Web 瀏覽器內(nèi)。因為它有完整的 Java API支持,所以Applet 是一個全功能的 Java 應(yīng)用程序。 Applet 程序是一個經(jīng)過編譯的 Java 程序,它既可以在 Appletviewer 下運行,也可以在支持 Java 的 Web 瀏覽器中運行。 Applet 程序可以完成圖形顯示、聲音演奏、接受用戶輸入、處理輸入內(nèi)容等工作。 Applet 程序中必須有一個是 Applet 類的子類。 標(biāo)簽的屬性指定了要運行的 Applet 類。width 和 height 用來指定 Applet 運行面板的初始大小。Applet 必須使用 標(biāo)簽來關(guān)閉。<applet code="HelloWorldApplet.class" width="320" height="120">If your browser was Java-enabled, a "Hello, World"message would appear here.</applet>
PWA
主谷歌PWA
P)rogressive (W)eb (A)pps在不影響主要功能的情況下,使用一些高級的CSS和JavaScript特性來提高性能或者開發(fā)效率的開發(fā)方式,PWA的P和這個想法有些類似——我可以按照常規(guī)標(biāo)準(zhǔn)來開發(fā)一個WebApp,PWA主推的能力:離線,推送,桌面訪問這三個能力。在說PWA之前必須先簡要PWA的核心——ServcieWorker, PWA的所提及到的所有功能都是圍繞著ServcieWorker來展開,那什么是ServcieWorker:詳細(xì)的解釋請參照MDN或者Google Developer上面給出解釋,這里先給一個大致的總結(jié),ServiceWorker是一個單獨的后臺線程,不依賴于某一個WebView,它是一個Proxy,用于監(jiān)聽以及管理服務(wù)的請求以及返回。 ServiceWorker是運行在單獨線程,在瀏覽器進(jìn)程退出之后,ServiceWorker線程也會關(guān)閉。再次打開瀏覽器之后,可以通過Wake Up機(jī)制喚醒ServiceWorker線程。PWA網(wǎng)頁和瀏覽器生命周期一致,瀏覽器進(jìn)程殺掉網(wǎng)頁也銷毀了。ServiceWorker進(jìn)程在網(wǎng)頁關(guān)閉后,如果內(nèi)存足夠,也不會被銷毀。
app內(nèi)小程序
以微信為主
iOS 上,小程序邏輯層的 javascript 代碼運行在 JavaScriptCore 中,視圖層是由 WKWebView 來渲染的,環(huán)境有 iOS 12、iOS 13 等;在 Android 上,小程序邏輯層的 javascript 代碼運行在 V8 中,視圖層是由自研 XWeb 引擎基于 Mobile Chrome 內(nèi)核來渲染的;在 開發(fā)工具上,小程序邏輯層的 javascript 代碼是運行在 NW.js 中,視圖層是由 Chromium Webview 來渲染的。先調(diào)用js,再回掉潛入式編程的C++。js是丟給v8支持,里面內(nèi)置了兩個引擎一個負(fù)責(zé)渲染一個執(zhí)行js。開發(fā)者不支持使用標(biāo)準(zhǔn)的Dom API開發(fā)網(wǎng)頁,最后的渲染工作由微信端的JS庫進(jìn)行操作。而微信小程序采用Virtual Dom,可以減少重繪和重排的次數(shù),提高了頁面的性能。 如果Dom API暴露給用戶,雖然界面的交互和操作上更豐富,但開發(fā)者對于Dom操作的隨意性反而會降低頁面的性能。 部分原生能力的API使用
瀏覽器內(nèi)小程序
以百度智能小程序為主
底層原理
|
|