2009年9月21日 星期一
西點軍校的第一條法則
西點軍校的第一條法則 --- 沒有任何藉口,在戰場上,只有兩種結果,消滅敵人,否則就是被敵人消滅。那些一開始找藉口的人肯定會被敵人消滅。而那些一開始就很努力,但最後沒有完成任務的士兵,一樣會被敵人消滅。在戰場上,不論你找到了什麼藉口,只要你沒有完成任務,最終還是要被消滅,即便你做了最大的努力。
2009年9月17日 星期四
extjs - 自訂vtype
內建的vtype有email、url、alpha、apphanum等等,不過內建的vtype可能不合我們使用,所以我們就需要自訂vtype。 我們必須定義vtype的value、mask、error message以及testing function:
- xxxVal: 輸入內容的正規表示式。
- xxxMask: 輸入的遮罩。
- xxxText: 錯誤訊息。
Ext.onReady(function() { Ext.QuickTips.init(); Ext.form.VTypes['portListVal'] = /^([0-9]+[,\-])*[0-9]+$/; Ext.form.VTypes['portListMask'] = /[0-9\-,]/; Ext.form.VTypes['portListText'] = 'Invalid Port List'; Ext.form.VTypes['portList'] = function (v) { return Ext.form.VTypes['portListVal'].test(v); } var form = new Ext.FormPanel({ renderTo: Ext.getBody(), frame: true, items: [{ xtype: 'textfield', fieldLabel: 'txt', vtype: 'portList' }] }); });
2009年9月8日 星期二
extjs, ux - Managed iFrame
JavaScript算是被誤解蠻深的語言,很多人都認為JavaScript很容易,卻往往寫出一堆邏輯錯誤,但是功能符合的code,進而造成許多的memory leak,這點我也避免不了,於是就有人想到用iframe來解決,目前我在使用上確實幫我解決了不少memory leak的問題,所以,也安心的讓大家亂寫一通(即便他們很認真的寫還是寫得很亂)。
最簡單的iframe就是指定xtype和defaultSrc即可,而切換頁面則透過iframe的setSrc(url)。
Ext.onReady(function() { var viewport = new Ext.Viewport({ renderTo: Ext.getBody(), layout: 'border', items: [{ region: 'west', title: 'west', collapsible: true, width: 100, items: [{ xtype: 'button', text: 'google', handler: function () { viewport.getComponent('center').setSrc('http://www.google.com'); } }, { xtype: 'button', text: 'nano chicken', handler: function () { viewport.getComponent('center').setSrc('http://www.blogger.com'); } }] }, { region: 'center', title: 'center', id : 'center', xtype: 'iframepanel', defaultSrc: 'http://www.blogger.com' }] }); });
這樣每一個iframe的網頁都是一個獨立的網頁,即便,parent頁面已經有include extjs了,iframe裡面的網頁如果有用到extjs,還是需要在include一次。
參考資料:
http://www.extjs.com/learn/Extension:ManagedIframe
http://www.extjs.com/forum/showthread.php?t=71961
http://code.google.com/p/managediframe/
訂閱:
文章 (Atom)
熱門文章
-
轉自 http://www.wretch.cc/blog/redsonoma/14021073 基本概念: 1> tty(終端設備的統稱): tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過串行線用打印機鍵盤通過閱...
-
Work queue提供一個interface,讓使用者輕易的建立kernel thread並且將work綁在這個kernel thread上面,如下圖[1]所示。 由於work queue是建立一個kernel thread來執行,所以是在process context...
-
(V)將介紹file operations中的ioctl。ioctl的prototype為: int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); ...
-
這兩天電腦的word忽然都不能存檔,即便是另存新檔也不行,最後都只能放棄修改檔案,即便重新安裝過或者更新成2007也都不能存檔,最後就乖乖的google一下,原來是暫存的資料夾不存在,按照以下方式就可以解決了。 資料來源: word 2003不能存檔問題 編輯機碼的(reg...
-
System Call在HW和user space提供一層抽象層,主要目的有: 為user space提供硬體抽象層。比如,讀取檔案時,不用管檔案所在的媒體類型與檔案儲存類型。 System call能確保系統的安全與穩定。避免user space的無意或惡意的破壞。 ...
-
在kernel中建立thread可以使用kthread_create(),建立一個task,然後在調用wake_up_process(task)讓task真正的運行,如果要kill一個kthread可以使用kthread_stop()。 在kernel中,將kthread_cr...
-
Linux module練習手札I紀錄如何撰寫一個簡單的module,並且編輯它,以及load和unload一個module。 write a module #include <linux/init.h> #include <linux/module.h...
-
幾乎任何使用 TCP,UDP或UNIX-domain socket的動作都可以用nc來達成,常見的功能如。 simple TCP proxies shell-script based HTTP clients and servers network daemon testi...
-
很多人心中都有過一個問題 What is the difference between Platform driver and normal device driver? ,簡單的來說Platform devices就non-discoverable,也就是device本身沒辦法...
-
組成元件 要能正確顯示資料,必須包含資料倉儲(Store),資料欄位的定義(ColumnModel)。 首先我們先定義資料欄位: var cm = new Ext.grid.ColumnModel({ {header: 'Name', dataIndex...