SNI 支援 (單一 IP 多個 SSL Certificate)

Twitter 上看到 yllan 提到 SSL certificate 的問題:

這是看 client 對 Server Name Indication 的支援程度而決定的。

在維基百科說明中「Browsers with support for TLS server name indication」這段裡面列出來的瀏覽器,可以看出來其實最大的問題就是 Windows XP 上的 IE{6,7,8} 不支援。(但 Windows Vista 以及 Windows 7 的 IE{7,8} 支援 SNI)

手上一時間找不到 Windows XP + IE{6,7,8} 的數量,但 gs.statcounter.com 上有幾個數字可以參考。

首先是台灣 IE8 的用戶數量:

再來是 Windows XP 數量:

以這兩個圖的資料來看,還是不太能用啊... :o

不支援 IE{6,7,8} 的 jQuery 2.0...

jQuery 2.0 的消息:「jQuery 2.0 Released」。2.0 版與 1.9 的功能相同,只差在支援度:停止對 IE{6,7,8} 的維護及 workaround。

如同半年前在「jQuery 2.0 將放棄 IE{6,7,8} 的事情...」講的,如果在 John Resig 還在的時候應該不會放棄 IE8...

這是 2012 年七月的數字:

這是 2013 年三月現在的數字:

仍然是超過 10% 而且不太往下掉的數字...

IE7 與 IE8 上的 :nth-child...

Zite 推薦快兩年前的文章... 在「Poor man’s nth-child selector for IE 7 and 8」看到用 + 來硬幹 nth-child()...

一般是這樣寫:

/* standard nth */
ul.menu li:nth-child(3)
{
    /* styles for the 3rd LI */
}

遇到 IE{7,8} 時可以這樣幹:

/* IE nth */
ul.menu>li + li + li 
{
    /* styles for the 3rd LI */
}

或是:

/* alternate, more specific IE nth */
ul.menu>li:first-child + li + li 
{
    /* styles for the 3rd LI */
}

印象中很久前有看到一堆這類硬幹的技巧,不過都忘光了... 寫一篇記錄下來 XD

微軟提供的 IE{7,8,9,10} 測試環境...

微軟前幾天公開了 IE{7,8,9,10} 測試服務:「Testing made easier in Internet Explorer」。

測試服務包括:

  • 網站版本,可以測試公開網站。
  • 虛擬機版本,可以測試內部網站。這次除了提供 Virtual PCHyper-V 版本的映像檔外,還提供了 VMware PlayerVirtualBox 版本。

不過這些檔案會不會太大了點... 我是抓 VirtualBox 版本,IE10_Win8.zip 居然有 2.7GB,為了真實模擬,所以把整個 Win8 包進去嗎 XDDD

jQuery 2.0 將放棄 IE{6,7,8} 的事情...

這是 StatCounter 的統計數字,IE8 有 13.28%,IE7 有 1.33%,約 14.61%:

現在是 2012 年年中,在 IE7 + IE8 還有 14+% 的數字的情況下決定要在 2013 年年初推出不支援 IE{6,7,8} 的 jQuery 2.0,這在 John Resig 還「當政」的時代大概是不可思議的事情:「JQUERY CORE: VERSION 1.9 AND BEYOND」、「JQUERY 1.9 AND 2.0 — TL;DR EDITION」。

如果照著這個步調走,要不是 jQuery fork 崛起,不然就是其他的 Framework 幹掉 jQuery...

用 IE 的 conditional comments 建立 class

IE 的 Conditional comments 可以拿來建立對應的 class,可以減少 css 使用 IE hack 的情況 (有些 IE hack 會使得 css 的語法不正確,用工具壓縮後可能會出問題),以 IE6 為例,下面的例子可以把 IE6 與 IE7 分別標上 class="ie6" 或是 class="ie7"

<!--[if IE 6]><body class="ie6"><![endif]-->
<!--[if IE 7]><body class="ie7"><![endif]-->
<!--[if gt IE 7]><!--><body><!--<![endif]-->

這個方式不需要 javascript,而且是合法的 HTML (只有 IE 會看懂 comment 內的說明)...