分類
程式技術

網頁為什麼會發兩次request到自己

這個是相當困難的一個題目…..

話說在 debug 一個 asp.net project 時, 因為會用到 session 內的 counter 做一些事情, 結果在測試的時候發生了一個很奇妙的狀況, counter 會無故多 +1

仔細檢查 asp.net 的程式碼, session 內的 counter 一次只有加一, 是寫在 Page_Init 這個 event 裡. 理論上沒有理由會多 +1, 雖然是用 master page 的方式處理, 也沒有理由在這個狀況下發生問題. 於是進行獨立測試, 發現即使沒有使用 master page 也是一樣. 所以初步排除和 master page 有關.

接下來 check iis log來對照, 果然有發出兩次 request 的狀況, 而不是 asp.net code 內的問題, 這樣問題說明應該是在 client side 端, 所以乾脆用 client 端來查, (利用 firefox 的 firebug 發現還真的會對該頁面發出兩次 request. 真的太神奇了, 於是再將該頁面存成 html 來查, 再做一次測試, 整個還是一樣的結果, 於是只好拿出區塊區塊刪除的方式來查… 花了超久時間… 發現結論問題在一行:

<img src="" width="242" height="182" alt="" />

有沒有看到什麼狀況? 就是 src=”” 這件事, 他讓 client 去多訪問了沒有設定的 img src 也就是本頁, 又或是 src=# 也是一樣的結果啦!!

所以這個到底要怎麼說呢, 唉, 反正就是很悶的一個無敵怪 bug…. 還好有找到咧, 給大家做參考!!

繼續閱讀:
http://www.johnbatdorf.net/blog/CommentView,guid,5aebd6b0-9be3-462c-a920-e19998bc173e.aspx
http://blog.csdn.net/vividboy/archive/2007/09/13/1783162.aspx

為了增加一些 page view, 多上一個英文的描述, why page load twice in ASP.NET or why page fire twice page_init event (雖然和 asp.net 一點關係都沒有, 哈哈)

分類
程式技術

如何利用CSS不要出現SCROLLBAR

今天在弄一個小網頁, 有個比較特殊的需求是不要出現在 browser 右邊的 scrollbar, 而且是 disabled 狀態的 scrollbar 都不要出現.

查了一下, 其實很單純, 直接使用 overflow: hidden 屬性放在 body 上就可以很容易做到這個需求. 參考這個範例: http://sample.diary.tw/15/1.htm

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
    body {
      overflow: hidden;
    }
    </style>
  </head>
  <body>
  這是內文..
  </body>
</html>

不過, 其實也有另一種需求是反過來的, 就是使用 overflow: auto 的 div 區塊, 一般我們若是在要畫面上出現一個含有 scrollbar 的區域用來顯示一些內容時, 就很方便, 我們可以參考這樣的一個範例: http://sample.diary.tw/15/2.htm

<div style="width: 190px; height: 190px; overflow: auto; background: pink;">
內容.....
</div>

範例內藍色底的部分區塊是未下 overflow: auto; 的屬性, 所以內容若是超出的話, 就會超出, 而下方紅色底的部分區塊則是使用了 overflow: auto; 的屬性, 所以超出的內容自動會出現scrollbar, 而方便排版及呈現, 這是在處理 body 不要出現右側 scrollbar 時也一併查到的資料:
http://apptools.com/examples/scroller.php