在 Windows 主機設定 AWStats 流量分析軟體

1. 安裝 ActivePerl 5.8

    1.1 安裝 Perl
   
        到這裡下載:http://www.activestate.com/Products/activeperl/
   
        請下載 ActivePerl 5.8 AS 的版本進行安裝。( AS 的下載檔案是 *.zip 格式 )
       
            解壓縮後執行 Install.bat 即可

        P.S. 因為 ActiveState 網站上的 MSI 封裝有問題,在我的 Win2k3 與 WinXP 都沒辦法安裝!

    1.2 安裝三個重要的 Perl 模組

        在 DOS 模式下直接執行以下三個指令即可:
   
        ppm install Geo::IP::PurePerl
        ppm install Geography::Countries
        ppm install IP::Country

        # 到 http://www.maxmind.com/app/geoip_country 下載 GeoIP.dat
       
        # 下載點(壓縮檔)
        http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
   
        下載後解壓縮至 C:\Perl 目錄下
    
        # P.S. ActivePerl 5.8 已經內建 Encode 模組 ( 用於 decodeutfkeys 外掛用的 )

2. 安裝 AWStats 6.7

    閱讀安裝設定文件: C:\Program Files\AWStats\docs\awstats_setup.html

    修正程式 Bug
   
        C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl
       
            Line 5808:     foreach my $code (split(/,/,$langlist)) {    # Search for a valid lang in priority
           
            這行的底下新增一行,才能正確自動解析不同語系!
       
            $code=lc($code);
   
3. 設定 Internet Information Server (IIS) 6.0

    3.1 修正 Log 格式

        date
        time
        c-ip
        cs-username
        cs-method
        cs-uri-stem
        cs-uri-query
        sc-status
        sc-bytes
        cs-version
        cs(User-Agent)
        cs(Referer)

    3.2 暫時將網站關閉
   
    3.3 將現有的 Log 移至其他目錄備份或直接刪除

    3.3 重新啟動網站
   
    3.4 新增虛擬目錄
   
        別名:cgi-bin
        路徑:C:\Program Files\AWStats\wwwroot\cgi-bin
        權限:讀取、執行
       
        別名:icon
        路徑:C:\Program Files\AWStats\wwwroot\icon
        權限:讀取
   
    3.5 設定「網頁設定延伸」
   
        將 Perl CGI Extension 設為「允許」
       
4. 設定 AWStats

    4.1 進入 C:\Program Files\AWStats\wwwroot\cgi-bin 目錄
   
        將 awstats.model.conf 複製一份並取名為 awstats.blog.miniasp.com.conf
   
    4.2 修改 awstats.blog.miniasp.com.conf
   
        # 設定 Log 檔的位址
        LogFile="C:\WINDOWS\system32\LogFiles\W3SVC1137020421\ex071115.log"
   
        # 設定 Log 的格式為 IIS 的 Format
        LogFormat="date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"
       
        ※注意※ 如有格式不同,請開啟 LogFile 後,將「第四行」的 Fields 欄位設定在 LogFormat 參數即可!!
        #Fields: date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes
       
        # 設定網站的網址
        SiteDomain="blog.miniasp.com"
       
        # 設定其他跟網站網址的別名
        HostAliases="localhost 127.0.0.1 REGEX[blog\.miniasp\.com$]"
       
        # 設定是否解析完 Log 後直接刪除原始 Log 紀錄
        PurgeLogFile=0
       
        # 設定可以從網站更新 Log 分析紀錄
        AllowToUpdateStatsFromBrowser=0
       
        # 設定 Host IP 反查 ( 關閉此選項,因為我們要用更有效率的 IP2Country 做反查 )
        DNSLookup=0
       
        # 顯示三國的語系可供使用者切換 ( tw: 繁體中文, en: 英文, cn: 簡體中文 )
        ShowFlagLinks="tw en cn"

        # 預設顯示「繁體中文」
        Lang="tw"
       
        # 讓統計的 URL 包含 QueryString 參數
        URLWithQuery=1
       
        # 讓統計來源的 URL 包含 QueryString 參數
        URLReferrerWithQuery=1
   
        # 開啟 GeoIP 反查模組
        LoadPlugin="geoip GEOIP_STANDARD C:/Perl/GeoIP.dat"
        # 開啟 IP 反查的外掛
        #LoadPlugin="geoipfree"
   
        # 開啟 decodeutfkeys 外掛
        LoadPlugin="decodeutfkeys"
   
        # 關閉 KeyWordsNotSensitive 才能讓中文顯示正常!
        KeyWordsNotSensitive=0
       
        # 設定這個才能讓 IIS 的 Log 時間正確顯示
        LoadPlugin="timezone +8"
       
5. 更新 AWStats 統計資訊

    第一次先手動更新
    "C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"

    # C:\Program Files\AWStats\wwwroot\cgi-bin>
    awstats.pl -config=blog.miniasp.com -update -showsteps -showcorrupted -showdropped

    更新成功後就可以先進入 AWStats 看連線狀態了
   
6. 使用 AWStats

    6.1 連線至 http://blog.miniasp.com/cgi-bin/awstats.pl
   
        預設的設定下,會要求輸入 Windows 的帳號、密碼認證!
   
        若要匿名登入看分析報表,需要修改目錄權限
       
            修改 C:\Program Files\AWStats\wwwroot 目錄的權限
           
                新增「網際網路 Guest 帳戶」( IUSR_machinename ) 並賦予「完全控制」權限

7. 設定排程定時更新網站流量統計

    7.1 修正 awstats.blog.miniasp.com.conf 設定檔,調整 LogFile 的路徑
   
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"
   
        %YY-24    代表從現在算起24小時前的「年份」
        %MM-24    代表從現在算起24小時前的「月份」
        %DD-24    代表從現在算起24小時前的「日期」
       
        備註:也就是我們要解析「前一天」的 Log 檔!
   
    7.1 新增「排定的工作」
   
        執行:"C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"
       
        開始的位置:"C:\Program Files\AWStats\tools"
       
        執行身份:MachineName\Administrator
       
        排程:每天上午 1:00 執行一次

    7.2 修改 AWStats 的 LogFile 路徑
   
        # 設定為每天分析的時候,抓取「前一天」的 Log 檔
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"

  

此文章由 will 發表於 2007/11/30 下午 07:57:00

永久連結 | 評論 (4) | 此文章的RSSRSS comment feed |

分類: 系統管理

標籤: ,

收藏:

加速 VBA 對文件的操作速度

我們為了大量更新 Office 文件內容,加速更新速度的方式,就是修改 Application.ScreenUpdating = False

因為你每做一個指令,就會造成畫面更新,如果你的文件有上千頁,速度就會被拖的很慢,所以最快的方式就是先通知 Office 先不要更新畫面,等做完再更新!

 Sub 刪除文件中所有圖片()
 '
 ' 範例:刪除文件中所有圖片
 '
 '
     Application.ScreenUpdating = False
    
     Selection.HomeKey Unit:=wdStory
    
     Selection.Find.ClearFormatting
     With Selection.Find
         .Text = "^g"
         .Replacement.Text = ""
         .Forward = True
         .Wrap = wdFindContinue
         .Format = False
         .MatchCase = False
         .MatchWholeWord = False
         .MatchByte = True
         .MatchWildcards = False
         .MatchSoundsLike = False
         .MatchAllWordForms = False
     End With
    
     While Selection.Find.Execute
         Selection.Delete Unit:=wdCharacter, Count:=1
     Wend
    
     Application.ScreenRefresh
    
     Application.ScreenUpdating = True
    
 End Sub

 

  

此文章由 will 發表於 2007/11/29 下午 11:19:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Office | VBA | Tips

標籤: , ,

收藏:

如何用 C# 將資料匯出到 Excel

我們常常會做「匯出」的功能,但是匯出的時候有一種狀況會出問題,就是如果資料的第一個字元是 0 但是你必須要留著的話,用 CSV 格式匯出再用 Excel 打開後,前面的 0 就會不見(被 Excel 視為是數字格式而吃掉了)。

這裡有一些連結說明各種不同的作法,蠻不錯的! 

A Very Easy to Use Excel XML Export Library
http://www.codeproject.com/KB/office/excelxmllibrary.aspx
 

How to transfer data to an Excel workbook by using Visual C# 2005 or Visual C# .NET
http://support.microsoft.com/kb/306023/en-us

如何將資料傳送至 Excel 活頁簿藉由使用 Visual C# 2005 或 Visual C# . NET
http://support.microsoft.com/kb/306023/zh-tw

Considerations for server-side Automation of Office
http://support.microsoft.com/kb/257757/en-us

Office 伺服器端自動化的考量因素
http://support.microsoft.com/kb/257757/zh-tw

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/kb/301982/en-us

如何從 Visual Basic . NET Microsoft Excel 自動化
http://support.microsoft.com/kb/301982/zh-tw

當然還有其他方式,我以前用的方式是在 Excel 中開一個新檔案,把你資料庫中的欄位都打在第一列,然後輸入一筆資料到第二列,當然也可以新增好幾個工作表(Worksheet),之後另存新檔成 XML 格式,你再去看這個檔案的內容(XML格式),格式很容易了解,你照著這個格式重新將從資料庫讀出來的資料轉成這個 Excel XML 格式就可以指定每一個儲存格的格式了!

  

此文章由 will 發表於 2007/11/28 下午 12:32:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , ,

收藏:

回味三年前寫的文章: 我的工作心得與觀察 (軟體)

今天太忙了,沒時間整理資料,但看到我三年前寫的一篇文章覺得很有意思,所以當成今天的主題。以下的文章是三年寫的文章,原汁原味的重現:

我從事軟體開發與銷售已經快 6 年了
大部分做的事都跟網路有關
與不少企畫、設計、工程師合作過
到現在我還是跟多年前的想法一樣
覺得網路軟體的市場太大、太雜了
永遠有其夾縫市場可以生存
但是卻很不容易做大
軟體公司只要稍微大一點
馬上會受到極大的競爭壓力
沒有實力的公司很容易就淘汰出局
這其中有很多很多的因素
包括大廠的產品行銷優勢
SOHO工作室的價格競爭
或是人才掌握不易.... 太多了。
這種不上不下的狀態只要持續一段時間
大部分的人都會選擇放棄
屈就於安穩的工作或是乖乖的當SOHO族
像是一間手工藝的軟體或設計工廠一樣
每天面對不同的客戶相同的抱怨
穩定又不穩定的收入
想放手一搏
又害怕自己年紀越來越大
記憶力越來越差
年輕人越來越強
怕東怕西的真的會越來越沒勁

我發現
軟體人越老會越懶
所以很少有人到 40 歲還在寫程式的
所以在台灣軟體業一直都是一群沒經驗的年輕人在拼
也沒有不好啦
年輕人拼是應該的
我覺得我以前寫程式打拼的程度還真的很恐怖
除了練出一身好功力
也發現了自己的熱愛
不過傳承才真的是大問題
"程式"本身沒有傳承的價值
很少有人喜歡接別人的程式寫下去
應該是 Domain Know-How 與 Software Architecture 才是價值所在
該傳承的應該也是這些
年輕人要磨的是 Coding 的功力
這是基本功,就像練武功要先學好紮馬步一樣

不知為何
寫 Code 的人漸漸跑去當業務了
這才發現原來 Programmer 變成 Sales 是這麼一回事
有些人一輩子轉不過來
有些人轉的成就十足
不管如何
寫過 Code 的表達能力就是比較精準
我不是說比較好喔!而是「精準」!
跌跌撞撞之後才會知道何謂「銷售」

再接下來
做業務的開始去做生意了
這才發現做生意就是你情我願嘛
你所學的一切都拿出來亂用一通
就是做生意了
做生意沒有保證成功的
但學的越多你能發揮的子彈就越多
亂槍打鳥總有一發會中
慢慢的...你就會懂的瞄準了 !
並且找到你的定位與使命

所以我也常在說
創造是一樣永遠不吃虧的投資
你所失去的每一分
都是未來成就的空間
你所踏出的每一步
都是通往成功的道路
你所成就的每一次
都是持續前往的動力
你所獲得的喜悅
就是你成功的最佳寫照

  

此文章由 will 發表於 2007/11/27 下午 10:43:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 心得分享

標籤:

收藏:

ASP.NET 3.5 要如何安裝在 IIS 5.0/6.0 中

這幾天在玩 .Net 3.5,發現了一個疑問,就是在 IIS 裡面為什麼看不到 ASP.NET 3.5 的選項?!且以前在 .NET 2.0 的時候有個 aspnet_regiis.exe 的執行檔在 .NET 3.5 也看不到!!

後來我才搞懂,原來 ASP.NET 3.5 只是使用 .Net Framework 3.5 的組件(assembly)而已!整個核心的架構還是建立在 .NET 2.0 之上,.NET Framework 的 API 都沒變,只是到了 .NET 3.5 很多 assembly 都重新寫過了,且執行的速度也比 .NET 2.0 的組件還快。

如果你用 Visual Studio 2008 開一個網站專案,你開啟 web.config 會發現在 <assemblies> 區段中出現了一堆 assembly 的定義,其版本都是 3.5.0.0

  <compilation debug="true">
   <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
   </assemblies>
  </compilation>

所以 ASP.NET 3.5 的程式要安裝在 IIS 上不需要特別指定 ASP.NET 3.5 的版本,繼續沿用 ASP.NET 2.0 的版本即可,但作業系統本身必須要先安裝 .Net Framework 3.5 runtime 就是了!
如果你要知道你的程式是用什麼 .NET 版本的話,可以用以下程式碼取得:
[code:html]


<%= System.Environment.Version  %>


[/code]
  

此文章由 will 發表於 2007/11/26 上午 10:56:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | 系統管理

標籤: ,

收藏:

感受到 LINQ 的強大威力了

今天下午花了些時間研究 LINQ,這果然是殺手級的東西啊!

光是去 http://www.asp.net/learn/linq-videos/ 這裡看了四個影片,就覺得真是不可思議的強,LINQ to SQL 真是好東西,解決了許多之前 Typed DataSet 做不到的事,又將整個資料庫操作的過程徹底的物件化與簡化,跟 SQL Server 的整合又更完整了。

大家有興趣可以去看看影片,沒幾分鐘:

底下是在 Scott Guthrie 網站的文章,寫得很清楚且圖文並茂,看完影片可以來這裡建立更完整的觀念:

  

此文章由 will 發表於 2007/11/25 下午 06:07:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | C# | LINQ

標籤:

收藏:

加速前端網頁效能的14條規則

Steve Souders 這個傢伙寫了一本書叫做:High Performance Web Sites: Essential Knowledge for Front-End Engineers

這本書裡定義了14條讓你的網頁加速的方法,分別如下:

  1. Make fewer HTTP requests
  2. Use a CDN
  3. Add an Expires header
  4. Gzip components
  5. Put CSS at the top
  6. Move JS to the bottom
  7. Avoid CSS expressions
  8. Make JS and CSS external
  9. Reduce DNS lookups
  10. Minify JS
  11. Avoid redirects
  12. Remove duplicate scripts
  13. Turn off ETags
  14. Make AJAX cacheable and small

而以下是我研究後的心得分享:

1. Make fewer HTTP requests

    - 減少 Image 的 Request 次數

        - 使用 CSS Sprites 技巧
          http://alistapart.com/articles/sprites
       
        - 使用 Image Map 技巧
   
        - 使用 Inline Image 技巧 ( data: )
          http://tools.ietf.org/html/rfc2397
         
          P.S. 可以開發一個 Inline Image 產生器!
         
          P.S. 建議將 Inline Image 快取在 CSS 檔案中,這樣可避免 HTML 太大

    - 減少 CSS / JavaScript 的 Request 次數
     
        - 整合多個分開的 CSS / JavaScript

2. Use a CDN

    - N/A

3. Add an Expires header

    - 加入 Expires Header 到 Image, CSS, JavaScript 檔案裡

4. Gzip components

    - 壓縮 HTML, JavaScript, StyleSheet, XML, JSON,但切記「不要壓縮 Images, PDF 檔案」!

    - 設定方法
   
        Apache 2.x: 使用 mod_deflate
       
            AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

        IIS 6.0
       
            Enabling HTTP Compression (IIS 6.0)
            http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true
           
            Using HTTP Compression for Faster Downloads (IIS 6.0)
            http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/25d2170b-09c0-45fd-8da4-898cf9a7d568.mspx?mfr=true
       
            Enabling HTTP Compression in IIS 6.0
            http://dotnetjunkies.com/Article/16267D49-4C6E-4063-AB12-853761D31E66.dcik
           
            IIS Compression in IIS6.0
            http://weblogs.asp.net/owscott/archive/2004/01/12/57916.aspx

        IIS 5.0
       
            HOW TO: 啟用 IIS 中的 ASPX 壓縮
            http://support.microsoft.com/kb/322603
           
           
    - HTTP Header Style
   
        HTTP request

            Accept-Encoding: gzip, deflate

        HTTP response

            Content-Encoding: gzip
            Vary: Accept-Encoding            ( 這行是給 Proxy Server 看的 )

    - 其他注意事項
   
        - 個人化的頁面要加上 ==>  Cache-Control: Private
       
        - 移除 ETags (Rule 13)

5. Put CSS at the top

    - 一定要將 CSS 放在 <head> 區段載入!
   
    - 使用 <LINK> 標籤,不要使用 @import 語法

    - Avoid Flash of Unstyled Content (FOUC) in IE
      http://www.bluerobot.com/web/css/fouc.asp/

        <!-- Hack to avoid flash of unstyled content in IE -->
        <script type="text/javascript"> </script>

6. Move JS to the bottom

    - 一定要將所有 JavaScript 都擺在頁面最下方
   
        </body> 之前
        因為所有在 JavaScript Include 以下的 HTML 在 JS 還沒讀完前,都不會顯示畫面
   
    - 把 JavaScript 的 Code 都放在 onload 執行!!

7. Avoid CSS expressions

    - 不要使用 CSS expressions 因為可能這段 expression 會在每一次 mouse move, resize, scroll, key press 時執行!
   
    - 要使用 EventHandler 去執行這些 Expression (JS Code)

8. Make JS and CSS external

    - 反正 JS 跟 CSS 拉到外面成獨立檔案就是好的,但「首頁」可以例外!
   
    - 使用 Post-onload download 技巧

        download external files after onload
        window.onload = downloadComponents;
        function downloadComponents() {
            var elem = document.createElement("script");
            elem.src = "http://.../file1.js";
            document.body.appendChild(elem);
            ...
        }
       
        範例:http://stevesouders.com/hpws/dynamic-inlining.php
   
        作法:
       
            1. 在 Server-side 判斷使用者 Browser 有設定 Cookie["hasPostOnloadDownload"]

                1.1. 若沒有,就使用 post-onload download 動態下載 CSS & JS
               
                1.2. 若有用,就直接用 <script src="xxxx.js"></script> 下載,Browser 會抓取 Cache 的版本

            P.S. cookie expiration date is key
   
9. Reduce DNS lookups

    - 在一個頁面中,不要超過 2 - 4 個 Hostname,不然會降低頁面載入速度
    
    - 開啟 Keep-Alive 支援

10. Minify JS

    - jsmin
      http://crockford.com/javascript/jsmin
     
      下載後更名成 jsmin.zip 解壓縮出 jsmin.exe 即可執行
     
      jsmin.exe < input.js > output.js    (注意:所有 UTF-8 編碼的 js 檔會變成 ANSI as UTF-8 編碼)
   
    - dojo compressor
      http://dojotoolkit.org/docs/shrinksafe

11. Avoid redirects

    - 參考資料:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    - 避免 Redirect 產生的方式
   
        * 網址若省略檔名時,最後面一定要加上 / 結尾
       
        * 追查 Log 檔
       
            - 查看 Log Referer
   
12. Remove duplicate scripts

    - 這一點雖然很呆,不過連 MSN Space, Yahoo 都有類似的情況!
   
    - 在 ASP.NET 的元件中(UserControls, WebControls),請多使用 Page.ClientScript.RegisterScriptInclude 的方式!

13. Turn off ETags

    - 基本格式
   
        * unique identifier returned in response

            ETag: "c8897e-aee-4165acf0"
            Last-Modified: Thu, 07 Oct 2004 20:54:08 GMT
           
        * used in conditional GET requests
       
            If-None-Match: "c8897e-aee-4165acf0"
            If-Modified-Since: Thu, 07 Oct 2004 20:54:08 GMT

    - if ETag doesn't match, can't send 304

    - ETag format

            Apache:
           
                ETag: inode-size-timestamp
           
            IIS:
           
                ETag: Filetimestamp:ChangeNumber

    - IIS 設定方式
   
        自動設定方式
       
            ETagFix - keep IIS eTags from changing
            http://www.snapfiles.com/get/etagfix.html
           
            原創公司:ISAPILab http://www.isapilabs.com/
           
            安裝 http://www.isapilabs.com/downloads/ETagFix-setup.exe 之後會重新啟動 IIS 之後就沒問題了!
           
            Related: http://www.snapfiles.com/Freeware/server/fwiis.html
           
            Note:
           
                在 IIS 5.0 可以正常運作
               
                在 IIS 6.0 必須要執行在 Isolate Mode 才可以使用 ISAPI,預設是不能用的!
    
        手動設定方式
   
        * 如果不是用 Windows Server 2003 SP1 要先安裝 Hotfix 900245
          http://support.microsoft.com/kb/900245/
     
        * 先安裝 IIS 6.0 Resource Kit
          http://www.microsoft.com/downloads/details.aspx?FamilyId=56FC92EE-A71A-4C73-B628-ADE629C89499&displaylang=en
       
        * 使用 Metabase Explorer 開啟 LM \ W3SVC 新增 DWORD to 2039 其 Value="0" ( 每一台 WebFarm 底下的電腦都要這樣設定 )
       
        * 重新啟動 IIS

              net stop iisadmin /y
              net start w3svc
              net start smtpsvc

        參考資料

            * 您可能會當您使用 Internet Explorer 6, 試著存取 Web 應用程式所裝載在 Internet Information Services 6.0 Web 效能非常低
              http://support.microsoft.com/kb/922703/

    - Apache 設定方式

        FileETag none

14. Make AJAX cacheable and small

    - XHR, JSON, iframe, dynamic scripts 都一樣可以被快取(Cached)、最小化(minified)和壓縮(gzipped)

    - 個人化的頁面回應時,一樣要做快取,但是針對「該使用者」做快取(Cache-Control: private)

        - 在使用 XHR 時,URL 可以加上「最近的修改時間」在 QueryString 裡。
       
            GET /yab/[...]&r=0.5289571053069156 HTTP/1.1
       
        - 回傳資料時的 Header 可以用 Cache-Control: private + Last-Modified,使用者就不會一直連到網站抓網站了!!

        設定 Cache Header 注意事項
       
        * 個人化的頁面一定要設定
       
            Response.Cache.SetCacheability(HttpCacheability.Private);
       
        * 如果要 Cache 頁面或 External Reference 檔案(CSS/JS)一定要加上
       
            Response.Cache.SetLastModified(DateTime.Now);
           
            如果不加上 MaxAge 的話,將會無限時間的 Cache 直到下次 Reload 或開新 Browser 手動輸入網址進入網頁
       
        * 如果要指定 Cache 的時間要加上
           
            Response.Cache.SetMaxAge(new TimeSpan(0, 0, 0, 10));
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(10));
       
        * 如果不要頁面被 Cache 的話
       
            Response.Cache.SetMaxAge(TimeSpan.Zero);
           
            Response.Cache.SetExpires(DateTime.MinValue);

  

此文章由 will 發表於 2007/11/24 下午 05:27:00

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: ASP.NET | JavaScript | CSS | 系統管理 | Tips | Web

標籤: , , , , ,

收藏:

自動啟動 ASP.NET 開發伺服器並開啟 IE 網頁瀏覽

以下是 StartWebsite.bat 的內容

@rem 取得目前批次檔所在的目錄
set CurrentDir=%CD%

@rem 打算要啟動的目錄名稱(此目錄將成為為網站的根目錄)
set FolderName=Website

@rem 設定 ASP.NET 開發伺服器使用的 Port (不能跟其他系統服務相衝突)
set PortNumber=3082

@rem 啟動 ASP.NET 開發伺服器
start C:\Windows\Microsoft.NET\Framework\v2.0.50727\Webdev.WebServer.exe /port:%PortNumber% /path:%CurrentDir%\%FolderName%

@rem 由於啟動 ASP.NET 開發伺服器需要一些時間,所以先停 1 秒再開網頁瀏覽
sleep 1

@rem 啟動瀏覽器直接讀取網頁,並直接關閉 DOS 視窗
start http://localhost:%PortNumber%/

 

  

此文章由 will 發表於 2007/11/23 上午 12:01:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: ASP.NET | Tips

標籤:

收藏:

SQL Server 2005 中的 CTE 遞迴查詢的上限

如果要用 T-SQL 來寫「遞迴」的話,一般來說 Stored Procedure 的上限是 32 次,而 CTE 卻跟 Stored Procedure 有著不同的上限次數,且預設為 100 次!而 CTE 遞迴的上限是可以修改的,最大值為 32,767 次!

參考資料:

Recursive Queries Using Common Table Expressions
http://msdn2.microsoft.com/EN-US/library/ms186243.aspx

Note: 
An incorrectly composed recursive CTE may cause an infinite loop. For example, if the recursive member query definition returns the same values for both the parent and child columns, an infinite loop is created. When testing the results of a recursive query, you can limit the number of recursion levels allowed for a specific statement by using the MAXRECURSION hint and a value between 0 and 32,767 in the OPTION clause of the INSERT, UPDATE, DELETE, or SELECT statement. For more information, see Query Hint (Transact-SQL) and WITH common_table_expression (Transact-SQL).

Query Hint (Transact-SQL)
http://msdn2.microsoft.com/EN-US/library/ms181714.aspx

MAXRECURSION number

Specifies the maximum number of recursions allowed for this query. number is a nonnegative integer between 0 and 32767. When 0 is specified, no limit is applied. If this option is not specified, the default limit for the server is 100.
When the specified or default number for MAXRECURSION limit is reached during query execution, the query is ended and an error is returned.
Because of this error, all effects of the statement are rolled back. If the statement is a SELECT statement, partial results or no results may be returned. Any partial results returned may not include all rows on recursion levels beyond the specified maximum recursion level.

  

此文章由 will 發表於 2007/11/22 下午 10:53:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: SQL Server

標籤: ,

收藏:

改變 IE7 預設按下 Ctrl+Enter 鍵時的動作

預設 IE7 在網址列輸入 miniasp 然後按下 Ctrl+Enter 這個快速鍵時,會跳到 http://www.miniasp.com.tw,但我們可能比較常連結的事國外的網站 ( http://www.xxxxx.com ),如果要修改這個預設的設定,可以透過修改系統機碼(Registry)來修正連結的網址。

  1. 開啟 regedit
  2. 選擇 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\QuickComplete 機碼

    註: 如果找不到 QuickComplete 機碼的話,請在 Toolbar 底下先自己新增一個!

  3. 在 QuickComplete 機碼右邊的視窗按下右鍵: 新增 --> 字串值

      (名  稱) QuickComplete
      (數值資料) http://www.%s.com

 

  

此文章由 will 發表於 2007/11/22 下午 12:36:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Tips

標籤: ,

收藏: