[小菜一碟] 如何依據網頁內容變換網址但不必重新整理網頁
- 3258
- 0
- JavaScript
一般我們如果打造的系統是給企業內部使用的話,走的是 Intranet,大概不會有程式設計師會去在意網路流量,當應用場景搬到了 Internet,流量成為企業經營成本的時候,那可是能省則省,因為在網際網路上大多數的內容,觀看者是沒有直接為這些內容付費的,成本當然能少一點是一點,這篇文章就要來介紹 WebMarkupMin 這個套件,將我們的 HTML 內容做最小化,減少不必要的傳輸流量。
之前的文章有介紹到 SSR(Server Side Rendering)的服務 - rendertron,在官方文件有提到,如果我們轉發的網址有帶 Query String 的話,需要對 Query String 做 URL Encode,我的轉發邏輯是寫在 Nginx,所以這件事情最好就由 Nginx 來負責。
這件事情說穿了其實就是用 Babel,平常就有在關注前端技術發展的朋友應該不陌生,Babel 可以將 JavaScript 比較新的語法轉譯成通用的寫法,讓舊版的瀏覽器(例如:IE)可以執行,我們就不需要為了舊版的瀏覽器而捨棄新語法。
JavaScript ES8(ES2017)的版本支援 async/await 語法,就像這樣:
這個語法對於主力是 C# 的我們並不陌生,async/await 語法可以在該進行等候資源的時候進行等候,而且不會打亂我們閱讀程式碼的順序,清晰度大大提昇,不過我很好奇,它是怎麼辦到的?
對我來說寫測試有一個很大的目的就是「保護既有已完善的程式碼」,我開發的 jQuery 擴充套件 - jquery-model 已經被我們團隊成員接受並廣泛使用,為了保護自己也保護他人,是時候為它投入一些時間架設防護網,而 JavaScript 的單元測試框架有好幾款,我選擇了 Jasmine,為啥呢? 因為它在官網的 GETTING STARTED 頁面就告訴我如何用 STANDALONE 的發行版本來引用 Jasmine,僅此而已。
平常寫最多的程式語言是 C#,這天在寫 JavaScript 的時候想到「JavaScript 有唯讀屬性嗎?」,以前有唯讀屬性的需求時,通常我都是這樣寫:
但是嚴格來講 fullName
是 Function 不是 String,JavaScript 也告訴我它是 Function。
那究竟 JavaScript 有沒有唯讀屬性呢?
原先從 ASP.NET MVC 4 開始就有的能幫助我們針對 js、css 靜態檔案做 Bundling 及 Minification 的 BundleConfig 到了 ASP.NET Core 還在嗎?答案是有的,只是換了一種使用方式,大致上還是跟原先一樣有兩個步驟:
但實現細節卻大不相同,我們來看看是怎麼個不同法?