[Work] IE对CSS的缓存和GZip似乎有点冲突

It seems something is wrong with IE's cache and GZip

好多Linux + Apache的服务器都会对CSS、JS和图片这些静态的内容设置缓存,到了IE这里又会在本地做一个缓存。所以当我们更新了CSS文件之后,常常会出现客户端没有更新,导致显示出现问题。之前我一直使用时间戳参数的方法来解决:

<link rel="stylesheet" type="text/css" 
href="common.css?time=20060408" />

每次更改了css文件就把参数time的值设为更改当日的日期,这样本地IE就会把它当作一个新的文件更新一次。

但是在最近做的项目中发现一个比较奇怪的问题,服务器端做了gzip压缩,到客户端第一次解压的时候没问题,第二次访问的时候ie从cache里读文件就出问题了,只能读出前面大约一两千个字节。在两台win2000+ie6的机子上重现了这个问题,XP的还没有发现。

最终的解决方案是在时间戳参数后面再加上一个.css结尾,也就是这么写:

<link rel="stylesheet" type="text/css" 
href="common.css?time=20060408.css" />

然后就一切正常了...

大概IE在从缓存里读文件的时候还得对文件扩展名做一个判断,所以这么加一下它就认了。我自己对这个解释不甚满意,所以如果你有标准答案麻烦留个言

BTW,这个现象在.js文件上同样重现了。

By Shark 2006-04-08 23:27:02 Read(4499) Comments(1)

[Work] 中国标准主题Blog聚合器

China Web Standards Blog Aggregator

  经过几天的奋战,终于推出了标准主题Blog聚合器的beta版。中间碰到不少问题,比如载入gb2312编码的RSS后显示为乱码等等。我对PHP也不是很熟悉,边看参考边做,所以肯定还有很多bug,各位高手不要见笑,帮忙多多提出宝贵的建议。

  一直以来,标准在中国的推广还是星星之火,东起西灭,希望我的这个小项目能够为燎原之火的燃起助一把力。另外向需要提到的是WSDN,Web Standards Develop Network,另一个正在进行中的项目。这个项目如果能够进行得好,会比这个简单的RSS聚合有大无数倍的影响力和实用性。希望大家多多关心。

  最后感谢这其中支持过这个项目的所有朋友,特别是阿捷,谢谢!

By Shark 2005-04-28 22:30:28 Read(2099) Comments(6)

[Work] 测试用的IE各版下载

Old IE versions for testing

解压就可以使用,方便大家测试。可能有些系统会不能使用,看运气咯:)我就有一台WinXP英文版不能用...郁闷...

点此下载

感谢悬翎提供的空间

By Shark 2005-04-09 14:26:42 Read(1574) Comments(0)

[Work] XHTML标签参考

XHTML Tags Reference

  记得刚开始接触XHTML时,一直对Semantic(有语义的)这个词频频出现在老外的教程中感到新奇和不解。一向来“以结果为导向”的网页制作方式使我们不关心HTML代码本身的质量,更不用说对HTML标签真正含义的关心了。HTML/XHTML作为一种语言,自然有它“说话的方式”,我们是否按正确的方式“说话”,关系到我们的代码是否结构化和有语义(Well-Structured and Semantic)。

  新手常常会问:“如果我的代码不结构化,也没有语义,但是浏览起来效果很好,有什么关系呢?”。我承认,再从“以结果为导向”的角度看,是没有太大的关系。但是从“过程”本身看,这样——“不美”。我的个人美学中对“美”的定义是:简单、自然。一套纷繁复杂的系统,如果不能用很简单很方便的方式使用,不美。一门包罗万象的学说,如果不能用很直观很简洁的公式表示,不美。所以“面像对象”比“面对过程”美,因为继承、重构等等复杂的系统最终可以提供简单的调用;所以《相对论》美,因为如此庞大的学说却使用着如此简单的公式:E=MC2。归根结底,我认为自然界是简单的,宇宙的基础是简单的。所以用最自然的方式构建HTML/XHTML文档,也才是最简洁最美的。

  为了得到“美”的代码,为了得到在无数人的文章中无数次提到的好处(站在商业应用角度看问题的人不妨参考一下),我支持采用“标准”的方式来构建网页。回归到XHTML代码上,就是用标签本来的语义“说话”,这才是最“自然”的XHTML标签使用方式。table就应该是表格,而不是用于页面布局的大框架;p就应该是段落,而不是用于分隔内容;等等等等……

  基于上面这些想法,我觉得该做点什么,所以决定先从写一份着重于“语义”和“结构”的XHTML标签参考,希望能对同行们的工作有些许帮助。

  由于只能抽业余的空闲时间撰写这份参考,可能进度会比较慢,还请关心的朋友见谅。

  链接:XHTML标签参考

By Shark 2005-03-27 15:26:41 Read(2234) Comments(15)

[Work] 我对IE7的希望列表

My IE7 Wish List

  前天偶然在MSDN上发现Micosoft IE7开发团队的人在他们的Blog上征求开发者对IE7的要求和期望。粗粗翻了一下评论,大部分都在对IE之前版本对CSS的古怪支持发牢骚(充分表达了本人的心声,要叫我用英语发牢骚还真不会...^_^)。

  下面是我的IE7 Wish List:

  1. 对CSS1、CSS2完全按W3C标准支持,解决现有的盒模型Bug、浮动Bug等;
  2. 如果上面这点做不到,至少做到3、4、5、6、7、8六点;
  3. 增加对max-width、min-width等的支持;
  4. 用户可以放大缩小网页(至少是其中的文字),即使用户CSS已经按像素指定;
  5. a:hover的背景图片不要反复下载;
  6. 可以把:hover伪类添加到所有的标签上;
  7. 增加子对像选择器;
  8. 增加:first-child伪类和:before,:after伪对像。
  9. 增加对含有透明度的PNG支持;

  差不多了,希望美梦成真:)

By Shark 2005-03-23 09:09:20 Read(2510) Comments(6)

[Work] 用Opera 7.10+模拟掌上设备测试网页

Testing for Handheld devices in Opera 7.10+

  利用Opera 7.10+版本可以测试网页在掌上设备中的显示效果,只要用Opera打开网页后按Shirt + F11就可以了。

  如果要针对掌上设备载入特定的CSS,需要在导入/链入CSS的时候加上 media="handheld"。如:

<link href="global.css" rel="stylesheet" type="text/css" 
media="handheld" />

<style type="text/css" media="handheld">
<!--
	@import url("global.css");
-->
</style>

以下是本站在这种方式下浏览的效果,没有应用专门的CSS。

Figure 1

By Shark 2005-02-17 13:14:59 Read(750066) Comments(0)

[Work] Firefox的一个浮动Bug?

Is this a bug of Firefox's?

  目前正在做一个重构的项目,因为要实现一个两栏布局,而且要求不要由左右两个Container Div布局,只能直接浮动每一块小的div来布局。

  通过float和clear的配合使用,在除了Firefox以外的其他所有Windows平台浏览器上都通过了。下面是例子(代码中出现的顺序是A、B、C)。

A

float:left;
B

float:left;
clear:left;
C

float:left

  如果你使用的是Firefox,你就可以发现C出现在B的右侧而不是像在其他浏览器中一样出现在A的右侧。如果你有解决方法,请赐教。

2月18日的新进展

  今天试了用绝对定位+负值外补丁来解决这个问题,这是例子

  可以看到中间的布局基本上没问题,可是如果要加一个footer的话就麻烦了,绝对定位使div#ccc从文档流中分离出来,导致它后面的元素得不到正确的y坐标。头痛,再尝试其他的方法看看……

By Shark 2005-02-16 19:51:47 Read(1678) Comments(2)

Page: