Google Font API网络字体

Google在今年的Google I/O大会上发布了一个新的服务 Font API,让我们可以方便的使用网络字体。
它使用css 的@font-face来引入字体,事实上这东西很早就有了,只是目前才又将其重新拿了出来扯淡。到目前为止大部分的浏览器支持该属性,以下是浏览器兼容性表。

浏览器 最低版本 支持字体
Internet Explorer 4.0 只支持OpenType字体(eof格式)
Firefox (Gecko) 3.5 (1.9.1) TrueType(ttf格式)和OpenType 字体
Opera 10.0 TrueType和OpenType 字体
Safari (WebKit) 3.1 (525) TrueType和OpenType 字体

当然除了兼容性问题外,各个浏览器对其处理的行为也不一致。

  • Chrome会继续渲染页面剩下的部分,但是在web字体被载入之前,使用该字体的文本位置显示为空白。
  • Firefox先用默认字体显示,当web字体载入后再使用它重新渲染一次。
  • Safari会继续渲染页面剩下的部分,但是在web字体被载入之前,使用该字体的文本位置显示为空白。
  • IE会继续渲染页面剩下的部分,但是在web字体被载入之前,使用该字体的文本位置显示为空白。

另外,在IE中最好将link标签放到<head>中的第一个,如果link放在了<script>标签之后,整张网页在字体被载入前会被阻塞并且不显示任何内容。
所以Google 就搞了个WebFont Loader出来,将所有浏览器的行为搞得跟Firefox一致。

WebFont这玩意也只适合英文网站,中文字体太大,目前的网速来看,要快速下载下来,还是有点困难滴。
-EOF-

ExpressionEngine Core 1.6.9

This is the “core” version of the last release of 1.x.
You can’t find it anywhere from EllisLab website since they are “forcing” people to switch to 2.1 and left no choice for a free trial anymore.
Hope you find it useful for a sneak peek.

这是ExpressionEngine Core 1.x最后一版,并在2.0版本起全部强制收费,不再提供core版免费试用。
下载 [download id=”43″]
-EOF-

万物皆缓存

浏览器缓存很重要,与缓存相关的几个头信息:

  • ETag 与 If-None-Match
  • Last-Modified 与 If-Modified-Since
  • Cache-Control
  • Expires

ETag是用在向服务器GET请求的时候判断文件是否过期。
而Expires是用来判断本地缓存的组件是否过期。
Etag 和 If-Modified-Since 均是用来判断服务器端的文件是否过期。
如果页面已经缓存,当页面刷新(F5)的时候浏览器不会向服务器GET请求。
如果页面(Ctrl+F5)的时候浏览器会向服务器发起询问,If-Modified-Since提交本地记录的组件的日期给服务器,如果服务器查询组件未做修改,那么返回304(Not Modified),如果服务器端文件有做修改那么服务器会返回新的组件给客户端。
Expires 和 Cache-Control用来判断本地电脑中的缓存文件是否过期。

通常的页面访问中,如果是访问一个全新的页面那么ETag,Expires的作用如下:
第一次访问服务器会将ETag和Expires发送给浏览器。
再次访问浏览器会根据缓存来加载组件,此时如果有缓存的就不发起HTTP请求。如果本地有缓存但是依旧强制向服务器提交组件的GET请求,那么ETag就会派上用场。

Cache-Control 比 Expires 有更高的优先级。
If-None-Match(ETag)比 If-Modified-Since(Last-Modified)有更高的优先级。

-EOF-

《Dive Into Python 3》中文版

Mark Pilgrim的《Dive Into Python》的升级版《Dive Into Python 3》针对 Python 3 进行了更新。现在这本书已经有了中文版,由啄木鸟社区翻译。

在线阅读 http://www.woodpecker.org.cn/share/projects/diveintopython3/
中文镜像 http://diveintopython3.com/
英文原版 http://diveintopython3.org/

在此感谢啄木鸟社区对Python中文资料所作出的贡献。
-EOF-