KO範例26 - ko.computed()的效能考量
ko.computed()能追蹤所依賴的ko.observable()或ko.observableArray(),在其變化時自動重算,開發時依直覺寫出關連邏輯,屬性間便會依預期變化。使用起來固然方便,但是當依賴對象連續變化時,要留意反覆重算的必要性以及對效能的衝擊。用一個範例來說明:<!DOCTYPE html><html><head><script...
View Article【CSS新手筆記】小探position: absolute應用
寫了好幾年網頁,卻一直是CSS新手,最近一年才比較認真研究個中奧妙,也慢慢解開一些原本搞不定的小眉角,說穿了不複雜,但相信我肯定不是地球最後一個發現的網頁攻城獅,故筆記分享,如高手發現有誤或另有妙法,請不吝指正。我對於position: absolute的認識是很粗淺的,印象還停留在ASP.NET 1.1時代WebForm的Grid Layout Mode,啟用後網頁的控制項會變成像Window...
View ArticleKO範例27 - ViewModel物件的擴充
為了確保Server端及Client端的ViewModel一致,在專案中我使用T4自動產生對應C# Class及JavaScript function,如此可確保ASP.NET端拋出的ViewModel與Client端的ViewModel完全一致,雖然這點Knockout Mapping Plug-In也辦得到,但自己產生的JavaScript ViewModel還可以加上JavaScript...
View Article【CSS新手筆記】左欄固定,右欄佔滿剩餘空間
寫了好幾年網頁,卻一直是CSS新手,最近一年才比較認真研究個中奧妙,也慢慢解開一些原本搞不定的小眉角,說穿了不複雜,但相信我肯定不是地球最後一個發現的網頁攻城獅,故筆記分享,如高手發現有誤或另有妙法,請不吝指正。有個常遇到的需求,我卻從沒弄懂過:...
View ArticleCODE-為Self-Hosting ASP.NET Web API加上Log功能
自從學會Self-Hosting ASP.NET Web API,遇到Console Application/Window Form/WPF程式需提供API介面的場合,我都二話不說召喚它出來打怪,開開心心地在EXE裡寫Web,好不快意~最近有個情境,需要為Web...
View Article使用自訂確認對話框取代window.confirm
專案規格有一條機車要求: 對於刪除或覆寫資料前的確認程序,希望以自訂風格的確認對話框取代簡陋的window.confirm()。舉例來說,按鈕後原本要透過window.confirm()請使用者確認後再執行,現在要改用自訂HTML元素呈現確認文字、按鈕進行確認,就如以下改用Kendo UI...
View Article解決Kendo UI NumericTextBox注音輸入法數字輸入問題
自己用是倉頡輸入法,Kendo UI數字欄位(NumericTextBox)一直用得很開心,直到同事回報: NumericTextBox配上IE瀏覽器,使用注音輸入法時無法用鍵盤數字區(鍵盤右方的數字盤)輸入數字,使用Chrome或Firefox則無此問題。[Bug示範...
View Article【CSS新手筆記】Box-Sizing
為了解決padding影響寬度造成破版的問題,新學會一個CSS屬性: Box-Sizing。Box-Sizing只決定一事件: 矩型元素在計算寬度及高度時,border及padding為內含還是外加? (參考: Box Model) 而其設定值有三種:...
View ArticleCODE-封裝Office繁簡轉換服務
手邊的專案涉及多國語系,之前研究過使用Excel維護多國語系字串資源檔,意外發現Office的繁簡轉換功能威猛過人,不單只是置換字元編碼,還能做到詞彙轉換,將字彙轉換成對應的說法,例如: 交易資料->事务数据、預設記憶體->默认内存... 等等,放著神兵利器不用,豈不暴殄天物? 於是,延續先前開發Word套表服務的概念,裝著Word當引擎的裝甲車登場囉~程式碼的重點在於Word...
View Article【茶包射手筆記】Word無法在Windows Service中執行
嘗試將先前提過的Word套表服務寫成Windows Service,原本使用Console Application + Self-Hosting ASP.NET Web API測試無誤,移進Windows Service卻壞了。試過將服務執行身分調為本機系統(LocalSystem)或AD網域帳號,錯誤依舊。使用Visual Studio追蹤進程式找到錯誤源頭:doc =...
View Article程式師語錄 - 黑暗選集
語錄有兩種,有一種在於闡述智慧哲理,使人樂觀向上,積極進取;另一種則直搗人生無奈,看完會心一笑,撫慰心靈。方式不同,但都是能帶來正面能量的心靈雞湯。最近看到網友but翻譯自日本程式鄉民的開發感想彙整,顯然是後者,讓搞程式專案快20年的我,讀來心有戚戚焉,忍不住頭點如搗蒜。摘要整理一些特別有fu的(部分有額外融入自已的觀點及體驗,作了改寫),預備於未來身處專案煉獄或遭程式花惹發纏身時咀嚼回味,追求心靈...
View ArticleKO範例28 - 轉換對象(排除自己)之下拉選單連動
專案需求一枚,用於匯率換算。來源幣別及目標幣別以下拉選單方式顯示,想當然爾,目標幣別跟來源幣別相同還轉換個屁,因此規格提到: 目標幣別的下拉選項應包含所有幣別,但排除來源幣別當下的選取幣別,特殊的下拉選單連動需求應運而生。要用KO實現此一連動並不困難:...
View Article【茶包射手日記】VS2012 Update 3安裝失敗
在一台新裝的Windows 7安裝VS2012,啟動後出現VS2012 Update 3更新通知,順勢執行Update 3安裝程式,遇到以下錯誤:Setup Failed! Install cannot continue because some required components failed. Setup Engine: The pipe is being...
View ArticleJson.NET技巧兩則: 忽略屬性及列舉轉字串
開發主戰場漸漸移到前端,應用Json.NET的深度也逐步增加。今天學會Json.NET技巧兩則,筆記如下:情境1:待序列化物件的部分屬性純粹供.NET端應用,不需傳到前端,希望能予以排除以縮短JSON字串,減少頻寬浪費。解決方案方法1 - 在屬性加上[JsonIgnore],負向表列哪些屬性不要序列化。 方法2 -...
View Article【笨問題】IE9的「console未被定義」錯誤
一直以來,有個鬼現象纏著我揮之不去,console.log常因不明原因在IE9出現SCRIPT5009: 'console' is undefined (console未被定義) 錯誤!我當然知道IE從IE8+才支援console物件,但如上圖所示,網頁明明是IE9標準模式,為什麼IE9卻說console物件不存在? 但進行偵錯,console.log()卻又正常!笨了好久,今天才解開謎團:...
View Article讓IE直接顯示JSON結果
IE有個討人厭的行為。當網頁程式以JSON格式傳回結果(JSON字串,且Content-Type設為application/json),在IE需下載另存檔案才能檢視,不像Chrome或Firefox可直接看結果。當需要反覆測試,"重新整理網頁->選取位置另存檔案->開檔看結果"的迴圈容易誘發焦慮、煩躁、爆怒等症狀,而一般患者多會啟動生物本能,默默關上IE改開Chrome尋求解脫...例如...
View Article