The Will Will Web

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

解決 OutputCacheLocation 指定為 ServerAndClient 的問題

Web 效能調校博大精深,眉眉角角的細節之多實在難以整理,我想大部分人也都跟我一樣,也是從一次又一次與茶包戰鬥中累積經驗,這次又遇到了一個有趣的問題。當我想將頁面設定輸出快取時,可能會希望同時快取在伺服器端(Server)與用戶端(Client),因此在設定 OutputCache 時有個 Location 屬性,我們會將其設定為 ServerAndClient 或 Any,但是你可否知道即便你這樣設定,一樣無法快取網頁內容於用戶端(Client),所以單單這樣設定並沒有達到我們真正想達到的目的 ( 同時在 Server 與 Client 快取網頁 )。

... 繼續閱讀 ...

介紹好用工具:Stop Forum Spam (有效阻擋垃圾訊息入侵)

我的部落格偶而會遭受廣告機器人攻擊,常常有一些奇怪的英文廣告被發表在文章的回應裡,每次看來源 IP 都是從美國/加拿大來的居多,我想大多是透過機器人自動攻擊的,由於時常要刪除這些廣告留言也覺得蠻煩的,上網找到一個 Stop Forum Spam 網站,這裡記錄了許多全世界到處在論壇散佈廣告訊息的 IP 位址、常用的帳號、Email 等,有趣的是來我這發表廣告的 IP 位址都會出現在這裡,此網站提供簡易的 API 方便透過程式整合,所以就寫了個小程式保護我的部落格留言機制。

... 繼續閱讀 ...

使用 Regular Expression 驗證密碼:使用 JavaScript 的陷阱

我在前年有寫過一篇【 使用 Regular Expression 驗證密碼複雜度 】文章,當時撰寫的技巧完全是針對 .NET 提供的 Regular Expression 而寫,雖然我的文章在標籤的地方有特別提到 .NET,但還是有人將文章裡提供的 Regular Expression 直接抄去給 JavaScript 使用,結果當然是養出一堆莫名其妙的臭蟲(Bug)。

... 繼續閱讀 ...

如何讓 IIS6 / IIS7 中同站台不同應用程式間共用 Session 資料

在 Web Farm 環境下部署網站需要關注的細節可不少,在部署大型網站的時候 IIS 這部分到底要算 IT 的領域還是開發人員(Developer)的領域其實分不太清楚,像要在「同一個站台」區分「不同應用程式」且還要能讓 Session 彼此互通,這到底應該歸誰管呢?這可不是用「ASP.NET 開發伺服器」可以模擬出來的,而 IT 人員如果不會寫程式應該也不知該如何是好,這也是我認為 ASP.NET 開發人員應該多熟悉 IIS 的原因。

... 繼續閱讀 ...

利用 WebClient 類別模擬 HTTP POST 表單送出的注意事項

我們都知道 WebClient 類別是個簡單易用的東西,不只可以用作 HTTP 用途,連 FTP 都能用,想偷懶時很快就能寫出一些網路資料上傳、下載的程式,像我在寫一些測試程式時經常會使用 WebClient 類別,但大多情況都用來「下載網頁」居多,少有模擬表單上傳資料的情況,但利用 WebClient 類別在「傳送表單資料」時要小心使用,否則遠端接不到資料又很難除錯時哪就麻煩了。

... 繼續閱讀 ...

使用 Google Public DNS 服務,上網速度不一定會變快!

這幾天 Google Public DNS 被炒的火熱,漂亮的 IP 位址 ( 8.8.8.8 , 8.8.4.4 ) 被瘋狂的宣傳,連我也一頭熱的研究了一番,一開始覺得速度還挺快的,網路延遲時間也很短,我猜也許已經有人開始將個人電腦的 DNS 切換過去了,但對於 168.95.1.1 的琵琶別抱真的是好事嗎,以下些許淺見供參。

... 繼續閱讀 ...

如何自動取得所有前端 JavaScript 錯誤以提升網站品質

我們每個案子都會用許多錯誤追蹤的機制確保網站品質,但還是不時會讓客戶發現有些功能無法操作,而這些問題大多出在 JavaScript 錯誤,由於一些老舊的瀏覽器或不同瀏覽器特性不同的關係,難免會有不小心寫錯的時候,為了能有效追蹤這些不易察覺的錯誤,我們會利用 JavaScript 追蹤 JavaScript 錯誤!

... 繼續閱讀 ...

介紹好用網站:UserAgentString.com

每個瀏覽器都會送出不同的 User-Agent 標頭(HTTP Header),當在開發網站時有時為了依據不同的瀏覽器來提供不同的服務時,都會特別寫程式比對瀏覽器的種類與版本,這簡單的判斷在 ASP.NET 或 jQuery 都已經有現成的物件可用,不需特別去查表,但有時我會想查詢這瀏覽器的各版本到底用了哪些字串表示,我就會上這個 UserAgentString.com 網站查詢。

... 繼續閱讀 ...

如何辨識使用者從瀏覽器按下 F5 或 Ctrl + R 重新整理頁面

有時候有些頁面有計數器或者有些程式碼只需要讓使用者執行一遍而已,我們會不希望使用者拼命用 F5 或 Ctrl + R 重新整理頁面時擾亂程式的運作,要達成這個需求其實有很多作法,例如透過一個 Cookie、一個 Session 來做判斷,但今天我要分享一個暗黑密記,教你如何從 HTTP Request Header 就可以判斷出使用者正在執行該頁面的重新整理。

... 繼續閱讀 ...