2010年12月20日 星期一

[技術筆記](CSS) word-wrap: 讓英文字自動斷行

常遇到在固定寬度的TABLE中顯示URL,但是URL太長因此超出TABLE預設的寬度,不會自動換行,可以用以下的CSS STYLE解決:
word-wrap: break-word;
word-break: break-all;


說明:
1. word-wrap: 超過寬度時是否要換行
2. word-break: 斷字的方法
 
以上語法適用於div、td、body、p...等

2010年12月15日 星期三

[技術筆記] 在windows server 2008的工作排程中執行IE開啟網頁

源起
在開發網路程式(ASP、ASP.NET...等)時,有些功能必須重複執行,通常會使用排程來設定這樣的工作。
但是如果程式設計師只有網路程式的經驗,不會寫WIN-FORM程式,好像也沒關係,寫成WEB版再設定以IE開啟即可。

以前的解決方案

指令如下:

"C:\Program Files\Internet Explorer\iexplore.exe" "http://url/?par1=value"

注意:因為路徑有空白,因此要加上"",否則會有找不到程式的錯誤

將指令設定到『工作排程』中執行即可完成此項任務。

問題點
但是這樣的解決方案看似容易,確有幾個問題:
1. IE是CLIENT端程式,必須在登入狀況下才能執行
2. IE會自動開啟,但是不會自動結束
3. IE是個大程式,佔用很多資源

2、3還好解決,用『工作排程』可以結束執行中的IE
1可以用自動登入來解決



最佳解決方案
最近SERVER換成Windows Server 2008,重新思考這個問題,希望能有較好的解決方案。
網路找了一下,發現有人用VBS來取代IE,是個不錯的方法,VBS程式碼列表如下:

Call OpenURL()
Sub OpenURL()
'Force the script to finish on an error.
On Error Resume Next


'Declare variables
Dim objRequest
Dim URL
Set objRequest = CreateObject("Microsoft.XMLHTTP")


'Put together the URL link appending the Variables.
URL = "http://url?par1=value"


'Open the HTTP request and pass the URL to the objRequest object
objRequest.open "POST", URL , false


'Send the HTML Request
objRequest.Send


'Set the object to nothing
Set objRequest = Nothing
End Sub


主要原理是建立一個Microsoft.XMLHTTP object來取代IE

執行VBS: cscript xxx.vbs
執行時會開啟一個DOS CMD,執行完自動結束,比開啟IE快10倍

如此一來,一次解決以上三個問題,太帥了

2010年12月6日 星期一

[技術筆記] ASP.NET 內建event執行順序

在ASP.NET程式中,提供許多內建的EVENT,可以用來處理一些功能,如果只有單獨一個PAGE,就比較單純。但是當導入Master Page以及User Control後,通常讓程式設計師無所適從,在此整理相關訊息:

單獨一個PAGE的狀況
1. PreInit
2. Init
3. PreLoad
4. Load
5. Load Complete
6. PreRender
7. PreRender Complete
8. Unload




考慮比較複雜的狀況
Content page、Master page以及User Control(包括Content page controlsMaster page controls)
1.Content page PreInit event.

2.Master page controls Init event.
3.Content page controls Init event.
4.Master page Init event.
5.Content page Init event.

6.Content page Load event.
7.Master page Load event.
8.Master page controls Load event.
9.Content page controls Load event.

10.Content page PreRender event.
11.Master page PreRender event.
12.Master page controls PreRender event.
13.Content page controls PreRender event.

14.Master page controls Unload event.
15.Content page controls Unload event.
16.Master page Unload event.
17.Content page Unload event.


Microsoft提供下圖做為參考(但是不含MasterPage)