2017 年 8 月開始,Google Analytics 推出新的追蹤流量工具 Global Site Tag (gtag.js) 來接收網頁流量數據,此工具除了提供更強大的資料收集 API 外,還對 SPA (Single Page Application) 網站提出了更簡單使用的 API。這篇將示範如何在 Angular 專案中加入 Global Site Tag 網站追蹤程式碼。
個人覺得 Angular Flex-Layout 這套布局工具真的很好用,之前寫了篇使用 Angular Flex-Layout 輔助版面佈局的筆記,為了讓自己更方便使用,做了張 Cheat Sheet,分享給有需要的開發者們。
有時候我們希望能在應用程式執行前先取得設定檔,然後應用程式再根據設定檔去做對應的動作,Angular CLI 專案有準備 environment 設定檔讓我們使用,但有些情況我們希望從遠端,例如透過呼叫 API 的方式,取得設定值,這時候開怎麼做呢?
在 Angular 專案中,我們會把共用的元件(Component)、指令(Directive)、管道(Pipe)放在一個 SharedModule 中做管理,那服務(Service)呢?一般來說,我們希望服務是單一實例(Singleton Service)的狀態,但基於底層運作的方式,直接在 SharedModule 建立服務,會產生多個重複的單一實例服務,而可能引發問題,這時我們可以透過 forRoot()
來幫我們避免這狀況的發生。
強大的 Angular 團隊在 Github 上有個專案叫做 angular/flex-layout,將 FlexBox CSS 包裝成一個個 Directive 來使用,這個 Flex Layout 專案輔助 Angular (v4.1 以上版本) 用更方便的方式來佈局 HTML 樣板。
HTML 中的 Meta 標籤可以用來提供網頁的內容資訊給瀏覽器或存取網頁的服務使用,例如常見的網頁內容描述(Description)、適用的螢幕解析度(Viewport),還有很多給爬蟲、社群媒體等使用的設定可以透過 Meta 標籤來標示,這裡做個整理。
預設的情況下,瀏覽器會將網站的資料作快取,幫助下次瀏覽時能更快速的呈現內容,不過有時候我們不想要這樣的功能時,例如安全性議題,該怎麼應對呢?這樣提供兩種方式,修改 Html 的 Meta 設定,或是從 Angular 程式碼中下手。
開發的過程中經常會有機密資訊需要設定,例如資料庫的連線字串、服務平台的 API 金鑰,如何保護這些機密不被外流,是件很值得探討的議題,而在 .NET 的開發環境中,有提供 Secret Manager 的套件讓我們輕鬆的保護應用程式的機密資訊。
2017 年起 Chrome 56、Firefox 51 以上版本的瀏覽器會將收集密碼的網頁標示為不安全,除非你使用 HTTPS 開啟該網頁,對於沒有 SSL 保護的小型網站(尤其是企業內部的小網站)造成了一點點困擾,而資訊人員總不想被人挑戰安全性議題,因此有個小撇步可以繞過這安全性檢查。