@符号在 Chrome 里的奇怪显示

在处理首页一些细节的时候发现,在 Windows 上的 Chrome 显示 @ 符号的时候有些异常:

通过和上面一个 @ 对比即可发现下面一个更加窄一些。

为什么会有这么一个奇怪的现象呢?

想起前几天看的一篇博文 浏览器如何渲染文本,里面说到,在进行文字排版之前,会有个 text run 的过程,会根据一些语言规则,产生出一些 shaper,然后才是交给后续排版。 Continue reading

Chrome 总提示需要更新 Flash Player

前阵子用 Google Chrome酷容,原谷歌浏览器,这名字还需要一段时间去适应)的时候就发现它老会提示需要更新 Flash Player,按照它的提示安装了最新的 Flash Player Plugin,依然是老样子,当时没时间折腾就没理它。

更新了 Ubuntu 到 1204 之后,发现问题依然存在。又重新安装了 Flash Player Plugin 好几次,其实在 Firefox 里已经看到是最新版本了,但为什么 Chrome 认不出来呢?

根据 Adobe 上的文档 的提示。打开 chrome://plugins/,点击在右上角的 Details 按钮,查找 Flash 那一项,奇怪的是里面显示有 2 files。

一个是 位于 ~/.mozilla/plugins/libflashplayer.so 版本是 10.3 d162,另一个位于 /usr/lib/adobe-flashplugin/libflashplayer.so 版本是 11.2 r202,于是尝试 disable 了第一项,重启 Chrome。

OK,问题解决。

余下的问题就是,为什么 Chrome 有这样的机制存在?既然有更加高版本的插件存在,为什么不是首选更高版本运行,而是简单地按顺序拿第一个版本来运行,并且打开凡是包含 flash 插件的页面都提示需要更新,即使安装了最新的也依然提示,很让人摸不着头脑。

控制浏览器的缓存

做前端开发时常要重复一个动作,改一点,刷新页面看看效果。这里,我们是有个假设,刷新之后是能看到新的内容的。

但事实上,并不一定。

因为浏览器有缓存的机制。当然,它不是任何情况都起效,如果响应头里面没有 Last-Modified, Expires, ETag 这些东西存在,浏览器也是不知道该怎么做缓存的。那就有办法了,开发的时候控制都不输出它们问题不就解决了吗?如果控制这个的开关只有一处的话,那当然可以,但实际这些响应头的处理是有必要做些细分处理的。如果可以让服务器保持正常一致的输出,那么控制权就落在浏览器哪里了。

控制浏览器的缓存,通常想到的都是清除缓存,所有浏览器都有这样的功能,简单点几下就能搞定。但其实还有更省力的办法,就是直接控制是否缓存。开发通常都喜欢使用的 firefox 上是控制缓存方法很简单,地址栏输入 about:config (会让你确认一下),然后在 filter 里输入 cache
从过滤结果可以找到 browser.cache.disk.enablebrowser.cache.memory.enable 这两项,默认都是 true,双击一下变成 false,缓存功能就禁止了。

这样,一开始的假设就是正确的了,可以放心的 F5 。

其它浏览器呢?

Chrome 据说也可以设置 –disk-cache-size=N,看上去可以控制缓存,不过我在 ubuntu 的 chrome13 上尝试是无效的,不知道 win 下可不可以。Chrome 可以通过 about:cache 查看缓存内容,也是个很有用的工具。

IE 里面是可以设定每次访问都从服务器请求资源。

不过,启用缓存的情况做测试也是必须的。之前就遇到一个非常特殊的例子,Expries 设置不当,禁用缓存情况下测试一切正常,启用的时候就不正常了,F12 一看是 304,清除多余的响应头即可。

由此,可以得出一个结论,服务器资源是可以从缓存角度做区分,适用缓存的部分,为了测试方便可以禁用缓存,而不适用缓存的部分是需要启用浏览器缓存机制进行测试,确保结果符合预期。

为什么需要更好的网银?

对于有关浏览器的事情,对于我这个整天和浏览器打交道的人来说,真是太有感触了,加上近日社区里面提出了希望各银行的网银提供对更多种主流浏览器的支持的呼吁,我那是一千万个支持,而且不仅希望网银的支持,更加希望扭曲的浏览器市场分布变得更加合理。

以更好的用户体验畅游于公开,开放的互联网,这是多么美好的事情,而这不仅仅是美好的想象,而是切切实实影响我们生活的趋势,我们应该鼓励实践这个美好愿望的行为。比如在 Mozilla 基金会的大力支持下,Firefox 发展迅猛,已经从苦涩的过去走出来成为浏览器中的明星,让我们认识到什么是好的浏览器;Chrome 以 google 的全球战略作为背景,异军突起,成为当前最潮的选择。

除了看到他们,我们还可以看到由此而起的诸多改变。 Continue reading