Flutter 做為一個跨平台解決方案,從 2017 年橫空出世之後,短短幾年的時間便能夠在市場佔有一席之地,除了背後有 Google 的支援之外,其號稱一份原始碼就能夠在 Android、iOS、Windows、macOS、Linux、Web 上建置執行,頗有一統江湖的氣勢,這篇文章記錄我在 Windows 上,從安裝 Flutter in Android Studio,到建置並成功執行範本 App 的過程。
[創意料理] 反爬蟲三部曲 - 如何防治高級網頁爬蟲?
[創意料理] 反爬蟲二部曲 - 如何防治中級網頁爬蟲?
在反爬蟲首部曲 - 如何防治初級網頁爬蟲?的文章當中,已經跟各位朋友大致上介紹過,這次防治爬蟲案例中的情境及所使用到的工具,防治初級爬蟲算是容易的,接下來我們要來防治中級爬蟲,難度上會稍微高一點,而且一樣要撰寫一些程式碼。
[創意料理] 反爬蟲首部曲 - 如何防治初級網頁爬蟲?
爬蟲
這個大多數 IT 人都聽過的名詞,有的人對它愛不釋手,有的人對它恨之入骨,在網頁上搜尋,教人當爬蟲的結果總是多過教人擋爬蟲的,技術工具本身沒有對錯,端看使用的人的心態跟手法,這篇文章來講講我如何幫客戶防治爬蟲?
[小菜一碟] 化被動為主動向爬蟲投擲炸彈(Gzip Bomb)
[廚餘回收] 在 ASP.NET Core 中誤用 async void 竟引發了 502(Bad Gateway)
- 1138
- 0
- ASP.NET Core
這個是我最近處理的一個問題,使用者回報網站某個功能壞了,而且發現最近時不時網站會顯示 502(Bad Gateway)的畫面,雖然多重新整理幾次它就好了,但是這並不正常,我隨即捲起袖子開始一系列的追查動作,誓言一定要將兇手緝捕歸案。
[廚餘回收] iOS 與 Android 對於已快取的 Request 處理方式不一樣
以前聽過有個笑話是這樣說的:
某A:聽說 iOS 在瀏覽網頁的時候很省電
某B:對,因為它什麼事都沒做。
原來這件事是真的,根據 RFC 7234 5.2.1.4 的定義,如果我們在發送 Request 的時候,加上 cache-control: no-cache
,在沒有從伺服器成功取得內容之前,不得使用已儲存的快取來滿足目前的 Request,但是 iOS 它連 Request 都沒送,自然就不需要理會這個定義。
[小菜一碟] Windows Forms 的 DataGridViewComboBoxColumn 選項變更後立即更新到 DataSource
- 743
- 0
- Windows Forms
Windows Forms 的 DataGridView 開啟編輯資料之後,我們就可以在畫面上直接對資料進行修改,預設的統一操作行為是修改完資料之後,按下 Enter 鍵或是離開該儲存格,資料就會更新到綁定的 DataSource 上,就像下面這樣:
但是呢,使用者會希望能在修改之後立即更新到 DataSource,不要再多敲 Enter 鍵或離開儲存格的動作,尤其是 ComboBox,我們來看一下怎麼弄?
[料理佳餚] 實作 IFeatureDefinitionProvider 從外部的服務載入 ASP.NET Core Feature Flags(Feature Toggle)的設定
- 629
- 0
- ASP.NET Core
上一篇提到我們可以把 ASP.NET Core Feature Flags 的設定,儲存在 Azure App Configuration(應用程式組態)裡面,現在再進階一點,我們可以實作 IFeatureDefinitionProvider 建立一個 Feature Definition Provider,讓 Feature Flags 的設定可以儲存在我們想要的地方。
[料理佳餚] ASP.NET Core 撰寫 Middleware 的 2+2 種方式
- 1024
- 0
- ASP.NET Core
在前一篇文章 [料理佳餚] ASP.NET Core 的虛擬目錄哪去了?中有提到,傳統 ASP.NET 的 HTTP Handler 及 HTTP Modules 的工作在 ASP.NET Core 是由 Middleware 來負責處理,這篇文章就來介紹撰寫 Middleware 的幾種方式。