今天處理了一件.NET服務故障案件。有個.NET開發的Windows服務,其任務為每隔幾分鐘查詢資料庫,取出待處理的作業項目,依其指示執行相關動作。狀況為資料庫仍有大量待處理項目,但服務未如預期取回資料逐筆消化。 幸運的是,程式設計時已加入頗為詳細的Log機制,很快地在Log檔發現記憶體不足錯...

之前有個錯誤認知,想像Knockout會在ko.computed宣告時期分析其與哪些obersvable相依,藉此訂閱變更事件,實現相依observable變動後立即重算的能力。在範例20時踢到鐵板! 情境是ko.computed因if條件式在某些情況下不會讀取observable,沒想到此後該...

這個範例回到我當年寫公司內部系統第一天就碰上的需求--輸入員工編號後,後方欄位需自動帶出員工姓名。 在開始之前,要先準備一個簡單的伺服器端查詢程式(EmpData.ashx)當內應,送入員編後要傳回包含EmpNo, EmpName資料的JSON格式(查不到時EmpNo與EmpName為null...

下拉選單間的連動在網頁設計十分普遍,例如: 主分類與次分類兩個下拉選單,選好主分類後,次分類的下拉選項要立即變成該主分類底下的次分類項目;另一個經典的例子則是---縣市鄉鎮與郵遞區號選取介面,幾乎是網頁開發的必修學分,網路上有不少範例及現成套件。 傳統做法就是在兩個下拉選單的onchange事件...

接著我們來玩玩Knockout + Ajax,目標是做出如下介面,以關鍵字查詢顏色名稱: 這種需求很多老鳥用膝蓋都寫得出來,但Knockout的寫法肯定讓你耳目一新! 在ViewModel宣告一個ko.observableArray, results, 來放查詢結果,用<ul&g...

我當兵的那個年代,傳說若是人品籤運不佳,被分派到某些野戰單位,就有機會享受"月入三十萬"的精實軍旅生活! 哇~~ 當兵待遇這麼好? 月入30萬,兩年兵當下來,還沒出社會就已經好幾桶金,勝過去澳洲當屠夫呢... 別傻了,沒這麼好的事,所謂"月入30萬",...

要用Reflection呼叫方法,需先取得MethodInfo,接著用MethodInfo.Invoke(object obj, object[] parameters)指定物件個體及引數(Parameter,或稱參數)陣列。不過如果引數屬傳址性質,傳入後預期會被修改,程式該怎麼寫? 廢話不多...

以下是昨天偵察.NET 2.0版本問題時新學的黑暗技巧。 使用反組譯工具追查到FtpControlStream這個internal class,想呼叫其中的方法驗證問題所在: 問題來了,既然是內部/私有類別,以外部程式的角度就不可能大大方方地宣告    ...

ko.computed()可在read/write方法加入邏輯,概念上就跟C#屬性可定義get及set一樣,能實現自訂屬性讀寫規則,如下面的C#範例,有機會在set UserName時實施不合法字元檢核: private string userName = string.Emp...

先前範例中出現的ko.computed()多用於對其他屬性值進行組合或運算,屬唯讀性質。但ko.computed()也支援寫入功能,可將寫入的新值經處理運算後用於更新相關屬性。 針對可寫入式ko.computed,宣告時將不再只傳入單一function,需分別宣告讀、寫對應的函數: s...

在Knockout預設機制中,能感應ViewModel屬性的改變,自動更新UI元素或是依據依賴關係重算ko.computed()函數,除此之外,我們還能"訂閱"屬性改變事件,以便在屬性值被修改時執行特定邏輯。 第一種做法是利用ko.observable()的.subscri...

利用knockout.js將網頁輸入結果對應到ViewModel,後續常需將其再轉為JavaScript物件或JSON字串抛至後端。由於ViewModel主要使用ko.observable()及ko.observableArray(),以JavaScript物件觀點為方法函數(function)...

Template範本(或稱為樣版)功能主要用於同一組輸出樣式需反覆套用多次的情境,在先前foreach範例中,<tbody>內含的HTML元素便是一種範本,重複套用在每一筆資料以產生<tr>。除了將範本直接定義在容器元素內,範本內容也可另存於<script type...

雖然knockout.js已經提供很多好用的繫結,例如: value、text、checked、attr、css... 等等,但實務上一定有無法滿足需求的情境。針對這點,KO允許開發者自訂繫結行為,以滿足專案中稀奇古怪的需求。這已屬進階型應用,但深入了解後就會發現此一擴充特性,讓KO更顯威力強大...

印象中,JavaScript跟C、C#一樣,可以在程式碼段落中任意插入空白、換行而維持相同語意,屬於Free-Form Language的一員。 雖然排成這樣沒什麼道理,但以下JavaScript可以執行無誤: funct...