The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

前端效能調校:使用 Partytown 將笨重的 JavaScript 放到 Web Workers 執行

前端效能調校的技法多如牛毛,但最明顯的效能殺手不外乎是 JavaScript 佔用 Main Thread 而導致頁面無法回應的狀況了。最近研究 Partytown 這個函式庫,他用了一個非常巧妙的技巧,把部分 JS 自動切換到 Web Workers 背景執行。這篇文章我就來分享如何將 Partytown 安裝到任意網站中。

... 繼續閱讀 ...

如何利用 ChatGPT 有效率的將網站中所有 jQuery 轉換成 VanillaJS

我最近把我的部落格公司官網jQuery 完整移除,全部都改用 VanillaJS 來實現原本的功能,原本以為網站會需要改很多地方,但實際動手下去實現之後才發現其實也沒那麼難,只要你有強大的工具在手,這件工作其實很簡單,這篇文章我就來分享我的方法。

... 繼續閱讀 ...

當 Azure DevOps 遇到 Angular 專案 npm run build 記憶體不足的解決方案

我們有個大型的 Angular 專案,原本在 Azure Pipelines 的 CI 都很順利,但是一個月前開始變的不穩定,常常會掛掉,而掛掉的原因是「記憶體不足」造成的。本篇文章我打算分享本次問題的 Log 內容,並提供一個解決方法。

... 繼續閱讀 ...

PowerShell 的 Get-ChildItem 需注意 -Include, -Path 與 Reparse Points 地雷

我一直覺得 Windows PowerShell 是一個讓人又愛又恨的命令列執行環境,其強型別的優點確實是好的讓人無法拒絕,但其執行環境的複雜度、版本相容性與各種 Cmdlet 的奇葩設計,每次遇到也都是讓人心幹神疑心曠神怡,不免嘖嘖稱奇。今天我就來分享一個昨天寫文章時遇到的神奇狀況,也就是我們常用的 Get-ChildItem cmdlet 需注意 -Path-Include-Recurse 的各種用法組合,以及一個 Reparse Points 的問題。

... 繼續閱讀 ...

如何使用 ImageMagick 批次將 PNG 圖片轉檔成 AVIF 與 WebP 格式

最近一直在優化我的部落格網站,有常來逛的人應該都可以明顯感受出效能提升,我的其中一個優化項目就是開始使用最新潮的 WebPAVIF 圖檔格式。這篇文章我就來分享如何透過強大的 ImageMagick 工具來批次轉換各種圖片格式。

... 繼續閱讀 ...

設定 .NET 的 HttpClient 使用 HTTP/2 通訊協定發出 HTTP 要求

前幾天把我的部落格網站啟用 HTTP/2 通訊協定版本,結果意外發現我有個用 WebClient 抓取網頁的程式壞掉了。其實我一開始並沒有發現是 HTTP/2 造成的問題,鬼打牆了一段時間才意識到可能是 HTTP 版本差異造成的問題。這篇文章我就來分享幾種不同的 HttpClient 程式寫法,讓你用 HTTP/2 通訊協定版本抓回遠端 Web 伺服器上的網頁。

... 繼續閱讀 ...

ASP.NET Core 網站如何整合 Google 的 reCAPTCHA Enterprise 功能

我們公司多奇數位創意的官網去年底全新改版上線,網站上幾乎每頁都有聯絡多奇表單,並透過 AJAX 傳送到後端 API 負責記錄並送出郵件到我們公司的服務信箱,但網站上線一個月以來,已經收到超過 100 條垃圾訊息。因此,我打算將表單加入 Google Cloud Platform (GCP) 的 reCAPTCHA Enterprise 服務,減少收到垃圾訊息的機會,不過我發現 GCP 的文件幾乎找不到任何一份完整的 C# 範例程式,連 ChatGPT 都問不出正確結果。這篇文章我來分享一下完整的開發流程!

... 繼續閱讀 ...

如何讓 LINQPad 輸出的 JSON 結果可以顯示語法高亮

我經常透過 LINQPad 撰寫一些範例程式或實驗一些 C# 的新特性,其中最常使用的一個 API 就是 LINQPad 內建的 .Dump() 擴充方法了,他可以將一些執行結果輸出在結果視窗中,非常方便。如果要說缺點,應該就是沒有語法高亮(Syntax Highlight)了吧!這篇文章我來分享一個小技巧,幫助你在輸出結果呈現語法高亮!👍

... 繼續閱讀 ...

一次搞懂 Azure Boards 的 Iterations, Areas 與 Teams 差異之處

我經常在企業內訓分享 Azure Boards 的專案管理心法,它是一套極其強大的專案管理工具,只要你能突破其門檻,將可有效的掌握專案進度,大幅提昇專案透明度,同時也能減輕 PM 的工作負擔。我們在一個參與人數多達 30 人的專案時,就開始用到了 Teams 與 Areas 的功能與概念,這篇文章我就來分享 Iterations、Areas 與 Teams 這三個概念的差異之處。

... 繼續閱讀 ...