JavaScript在這十年的發展

回顧過去十年的JavaScript和Web的發展,真是一段驚心動魄的旅程。 儘管我書架上有一些1998年的JS書籍,但2010年時我並沒有寫很多JavaScript。當時我主要使用Mootools和jQuery插件。可能有些JS代碼是我寫的,但並沒有什麼突破性的創新。 那時的JavaScript絕對不被視為熱門語言。它的主要用途是在像GMail、Google Maps等有大量預算的項目中進行一些高級工作。 對於大多數人來說,用JavaScript編寫整個應用程序的概念當然是陌生的。 快進到2019年12月31日,JavaScript可真是太普遍了。 JavaScript無所不在。在過去的10年中,它經歷了多次更新,包括一個主要更新(ES6),如今我們寫JavaScript的方式與2010年完全不同。 異步和等待、箭頭函數、Promises、生成器、const/let、類、模板字面量等,肯定使現代JavaScript看起來和行為也非常不同。 ES模塊使大型應用程式更易於撰寫和維護。 但這不僅僅是語法和語言的新特性改變了。 我認為,這十年最大的變化之一就是構建工具的引入和廣泛使用。從Grunt到Gulp再到Webpack、Parcel和Rollup,工具的發展如此迅速,作為開發者,我們每天都有越來越大的能力。 模塊打包器為我們提供了非常高級的功能,如樹搖篩檢。了解這些技術是如何從早期發展至今真是令人驚嘆。 我們要提到Node.js嗎?從技術上講,Node在2009年春季首次推出,所以並不屬於這個十年。但可以肯定的是,Node第一年並沒有取得很大的突破,但在這十年中卻取得了巨大的成功。 現在讓我們來談談瀏覽器。2010年1月的IE版本是8,其佔有率超過50%並且Edge還不存在。Chrome作為一歲的瀏覽器佔有率僅為5%,因為1.0版本是在2008年12月發布的。你能想像嗎?如今Chrome是最受歡迎的瀏覽器,遠超其他瀏覽器。據我所知,64%的互聯網使用Chrome,而Safari佔有16%。 說到Safari,在2010年1月,iPhone 3GS已經推出(我當時沒有,我還用著Nokia。我第一部iPhone是在那一年晚些時候推出的iPhone 4)。那時JavaScript在該設備上執行速度可能不會很快。但如今移動瀏覽器可以以閃電般的速度執行JavaScript,並且JavaScript被用於使用Cordova、Ionic、React Native等令人驚嘆的框架來構建移動應用程序。 npm於2010年1月推出,它的崛起可謂驚人。起初它只是一個Node.js模塊的包管理器,如今npm也成為了前端開發的事實標準。它在去年6月份超過了一百萬個包,我敢肯定它是世界上最大的軟件目錄。 順帶一提,GitHub在2010年1月剛剛存在1年半的時間。看看它當時的樣子真是有趣。 在這十年中,許多驚人的項目應運而生。我可以提到Ember.js、CoffeeScript、Angular、React,只舉幾個例子。 我有幸參與並加入了許多不同的社區,而JavaScript和整個生態系統之所以在這十年中發展如此迅速,是因為工作在其中的人們。 憑著熱情、勤奮、承諾和慷慨精神,開源社區以及成百上千的充滿企圖心的公司,使JavaScript這個開發世界的一角成為今天的模樣。 回顧過去,看到我們走了多遠真是令人愉悅。 我真的無法想像這個未來十年會帶給我們什麼。

Safari,在退出前發出警告

如何避免意外關閉Safari,使用一個簡單的技巧 我是一個經常換瀏覽器的人。 我每天使用瀏覽器的時間太多了,有時候只是想換一個新的瀏覽器來試試新功能。 今天輪到了Safari。 我很喜歡Safari。它輕巧,功能簡單,非常快速。 然而,在打開新的標籤時,我不小心按下了cmd-Q,導致瀏覽器退出了。 Chrome和Firefox在試圖關閉它們時提供了一個很好的可選確認對話框: 但是Safari沒有這個功能。 因此,我重新將cmd-Q映射為cmd-option-Q。 以下是我如何做到的:打開系統偏好設置,點擊鍵盤: 點擊快捷鍵,然後點擊應用程式快捷鍵: 添加一個新的快捷鍵,選擇Safari並將選單標題命名為“Quit Safari”,添加新的快捷鍵: 就這樣: 由於這個選單標題與現有的Quit Safari選單相同,快捷鍵現在會改變: 再也不會意外退出了。

在 iOS 上使用 WebRTC 出現黑盒子時該怎麼辦

最近我在使用 WebRTC 搭配 PeerJS 庫進行一個項目。在桌面端一切運作正常,但在 iOS Safari 上,無論是本地流還是遠端流,都只看到一個黑色盒子。 經過一番研究後,我找到了解決方法,需要將 video 標籤的 playsincline 屬性添加到本地和遠端流的標籤中: <video id="local" autoplay playsinline muted></video> <video id="remote" autoplay playsinline></video> (注意:在 JSX 中是 playsInline) 解決這個問題後,我成功在 iOS 上正常顯示了 WebRTC 的視頻流。希望這個方法也能對你有幫助!

設置您的網站以在iOS上允許全屏

在使用iPad Pro期間,我決定將一些網站添加到主屏幕。雖然同樣的操作在iPhone上也有效: 按壓分享按鈕(在底部中間)以顯示選項面板: 選擇“添加到主屏幕”: 現在,您將在主屏幕上看到一個帶有網站圖標的應用程序。 點擊它只會在Safari中打開該網站。 但是,如果將此meta標籤添加到頁面中: <meta name="apple-mobile-web-app-capable" content="yes"> 點擊應用程序圖標將在全屏中打開該網站: 這在iPad上也是有效的: 這將幫助您節省螢幕空間,因為Safari的用戶界面將無用,也能提升整體應用程式使用體驗。 當然,這必須得到網站/應用程式開發者的支援,否則無法全屏顯示。