2011年4月19日 星期二

用svn exprot 出貸時產生的錯誤來學習svn commit怎麼使用

畫面1: 裝機後的錯誤畫面.



trace 程式碼之後才發現是有少檔案,為什麼會少檔案呢?
原來是使用 svn 的 export, 沒有把所有的檔案都匯出來.
正確的 commit 方式, 請勾選 "show unversioned file"

2011年3月18日 星期五

iis 壓縮網頁,增加網頁效能

應用 IIS 6.0 的 Gzip 壓縮功能降低網路傳輸量

生存在資訊爆炸的網頁程式設計師們應該都會遇到網站效能不佳的問題,然而網站效能不佳有多種原因,舉凡 Web Server 本身的效能問題、系統架構設計不良、後端資料庫負載過重及設計不良,Web Server 將網頁內容傳輸到使用者瀏覽器的網路傳輸問題等等,這些都是需要面對的問題,網路傳輸問題最簡單也最容易解決的就是降低Web Server傳輸到使用者瀏覽器的網頁內容大小,降低網頁內容大小也有多種方法,例如把HTML檔案的換行及不必要的空白字元移除,CSS 盡量設計共用架構不要使用 Inline,壓縮 Javascript 檔案,縮小引用的圖檔等,還有一個大部分 Web Server 如: WebSphere、APACHE、IIS 5.0 以上都支援的 GZIP HTTP 壓縮功能,不過你用壓縮功能一定要犧牲一些 CPU Time ,目前大部分入口網站也都使用此項功能來減少頻寬的使用率,有效的提高網頁瀏覽的速度,我的 E 政府 (www.gov.tw)、Yahoo(tw.yahoo.com) 等大型入口網站也都有使用 GZIP,這也說明了他是個很普遍的技術,如果想提升瀏覽速度的話,不妨盡快評估導入此功能。


壓縮前:
傳回的 html 為未壓縮的內容.


壓縮後:
content-encoding: 的內容己修改為 gzip


相關工具:
IIS 6.0 Resource Kit Tools:
http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&DisplayLang=en


相關文章:
1.應用 IIS 6.0 的 Gzip 壓縮功能降低網路傳輸量:
http://www.icopy.net.tw/print/forum_posts.asp?TID=459

2. 網頁壓縮檢測: http://gzip.zzbaike.com/
檢測結果:
原本 24.3 kb 的 html 到 client 端只剩 4.5kb, 壓縮率到 81.4%.

3. Enabling HTTP Compression (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true



設定方式:
啟用動態頁面(asp,dll,exe)內容壓縮的指令:
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true

建議: 動態壓縮比設低一點, 可以兼顧 Server CPU performance 及 網路傳輸的 performance


啟用靜態頁面(html,htm,js,css)內容壓縮的指令:
cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoStaticCompression true

附註: adsutil.vbs 檔案已經放在 C:\Inetpub\AdminScripts\ 目錄下.

這2個步驟, 可以用滑鼠來做,

1.開啟「網際網路資訊服務(IIS)管理員」,選擇「網站」後點選滑鼠右鍵選擇「內容(R)」。

2.選取「服務」頁籤後,請勾選「壓縮應用程式檔案」和「壓縮靜態檔案」,其餘HTTP壓縮相關設定請視伺服器效能設定。

3.返回「網際網路資訊服務(IIS)管理員」,選擇「網頁服務延伸」,選擇後右方區塊會顯示網頁服務延伸項目,請在空白處點選滑鼠右鍵選擇「新增網頁服務延伸(A)」。

4.請設定延伸名稱為「GZIP」,新增一筆需要的檔案為「C:\WINDOWS\system32\inetsrv\gzip.dll」(此為預設位置可能因為您安裝的不同而有所不同),並勾選「設定延伸狀態成允許」後確定。

5.當前述步驟執行完畢後,就會在網頁服務延伸項目中看到GZIP。

6.接下來設定GZIP可以壓縮的副檔名,返回「網際網路資訊服務(IIS)管理員」,選擇「主機名稱(本機電腦)」後點選滑鼠右鍵選擇「內容(R)」。

7.在「網際網路資訊服務」頁籤,請勾選「啟用直接Metabase編輯(N)」。

8.接下來請開啟「c:\windows\system32\inetsrv\MetaBase.xml」(此為預設位置可能因為您安裝的不同而有所不同),並搜尋「IIsCompressionScheme」字串。
可以執行指令 notepad c:\windows\system32\inetsrv\MetaBase.xml


9.請設定「HcDoDynamicCompression」及「HcDoOnDemandCompression」兩個屬性為TRUE。

10.設定「HcDynamicCompressionLevel」壓縮等級1 - 9,數字越大越耗費CPU資源,請視伺服器效能設定。建議: 使用 3 或 5 即可.

11.設定「HcFileExtensions」靜態頁面副檔名,可設定類型建議為
htm
html
xml
css
txt
pdf
doc
js
swf
txt

12.設定「HcScriptFileExtensions」動態頁面副檔名,可設定類型建議為
asp
aspx
asmx
dll
exe

13.存檔完畢,重新啟動IIS。



資料來源:



2010年5月26日 星期三

以Asp實作Virtual Directory

原理:
透過自定 Http 的 404 - file not found, 來實作 Virtual Directory (虛擬目錄).


執行畫面:
把 max.jsp 設定成去執行某個 asp



設定方式:
1. 設定 IIS:
設定 404 的類型為 URL,
內容為 /inc/max.404Handler.asp


2. 設定 重導 URL 的 mapping 在 /public/404Handler/404.xml
3. 後台 Virtual Directory 的設定界面在 /admin/virtualDirectory/editact.asp


附件清單:
\web\inc\max.404Handler.asp
\admin\virtualDirectory
\admin\inc\max.404Handler.asp
\admin\inc\max.DB.Function.asp
\admin\inc\max.File.Function.asp
\admin\inc\max.String.Function.asp
\admin\virtualDirectory\editact.asp
\public\404handler\404.dtd
\public\404handler\404.xml


附件下載:



資料來源:

2010年4月29日 星期四

[JS].日曆元件更新.201004229

說明: 增加 "縮小/放大" 及 "今天 (Today)" 的這2個按鈕.

執行畫面:


相關設定值:
isWinHeader: true (是否要顯示標頭)
isWinDrag: false (是否可以托曳)
isYearEditable: true (年份是否可以下拉選擇)
isMonthEditable: true (月份是否可以下拉選擇)
headerText: '日曆' (標頭要顯示的文字)



附註: 官網的版本, 如果您在 IE6 去使用, 會遇到多跑出一個圖層的話(因為 iframe 的 top 值有錯), 請改用附件裡我修改的版本, 只有修改 dhtmlxcalendar.js 裡的一行指令.



2010年4月28日 星期三

[SQL].判斷未滿20歲的人數是否過半

SELECT
CASE (SELECT COUNT(ACCOUNT) FROM memberdata) WHEN 0 THEN 'No'
ELSE
CASE
Floor(
( SELECT CONVERT(DECIMAL(8, 2), (SELECT COUNT(ACCOUNT) FROM memberdata WHERE Datediff("d", birthday, Getdate()) < 365.25*20) )
/
CONVERT(DECIMAL(8, 2), (SELECT COUNT(ACCOUNT) FROM memberdata))
) + 0.5
)
WHEN 0 THEN 'No' ELSE 'Yes'
END
END AS 'moreThanHalf'

2010年4月12日 星期一

[SQL].取上下筆資料的Sample

分享 T-SQL 的句子, 可以用來取上/下一筆的資料.

附註: row_number() over(...) 這個指令, 要 sql server 2005 以上的版本才有支援.


--// 取上一筆
select top 1 * from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where rownum < (
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?
)
order by rownum desc

--// 取下一筆
select top 1 * from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where rownum > (
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?
)


--// 取自己 rownum
select rownum from (select 欄位1,
row_number() over(order by 欄位2 desc) as rownum
from Table1) myData
where id=?



特別感謝: 鈺鈞告訴我有這個指令.


2010年4月8日 星期四

[Tool].網頁debug工具--Fiddler2

檔案下載:

以下是轉貼的資料:


Fiddler算是微軟的一個「地下產品」。這軟體是免費的、也不推廣、不掛Micorsoft LOGO。

他是一套Debug軟體,會監測我們「看網站」的時候,究竟讀取了哪些網頁、程式、圖片、Flash、JavaScript、影片、CSS。除了Debug的功用之外,換個思路,就可以幫設計師做到一些怪怪的事情。

例如:
1. 抓Flash:
很多Load 來 Load去的Flash網站,你原本只能抓到一個最外層的swf,但現在可以把那些「看的到、但抓不到」的swf全部抓下來。

2. 抓JS,CSS:
不用看HTML原始碼,就知道某網站用了哪些JavaScript、CSS。

3. 抓FLV:
不用看原始碼,就把無名影音或是Youtube的影片(flv)抓回來。
4. 抓圖:
Flash裡頭Load的圖檔。

5. 輕鬆解決網頁設計時的「路徑問題」,尤其是跨網域或是目錄很多層,又有html又有flash的時候。

步驟是:
1. 打開IE。按下Fiddler的按鈕。(可以從Rules\ Hide Images選項,關掉gif,jpg等圖片的紀錄)
2. 進入你要監測的網站。
3. 視窗上面,會出現該網站全部的Session紀錄。(如下圖)
4. 無論你做什麼動作,IE讀取過哪些程式、flash,都會給你網址。

網路行銷參考案例左邊小圖示會告訴你相關的檔案類型,還有結果的http代碼(例如404是找不到檔案)

自己試試。http://www.fiddlertool.com/fiddler/


必須安裝.net framework才能啟動fiddler
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=zh-TW

Facebook 留言板