Posted by endless | Posted in Css | Posted on 10-11-2009
今天遇到一个很诡异的问题,就是同样的css代码和相同的dom在FF和IE下面显示的效果却不一样,仔细查看了css文件,觉得不存在不兼容IE的写法,并且IE中出现很多css失效的现象。也许有人会说是文档编码的问题,但是今天的页面是老页面,都是gb2312的编码,css也是如此,并没有调用新页面中的utf-8文件。即便我在css的link中加入charset属性也无济于事,排除了编码的不一致造成样式解析错误。
后来一行一行调试发现原来罪魁祸首是css中的注释,很无辜。大家都知道css注释是“/*这里是要加的注释内容*/”,但是如果注释的内容有中文的话,就要注意了,一个*是不够的,要么用“/**这里是要加的注释内容**/”加上2个以上*来注释,或者在内容和注释符号之间加入空格,如“/* 这里是要加的注释内容 */”,这样css在解析的过程中才会正常解析,要不在IE下面就会产生很多诡异的显示问题。同时英文注释不受限制,写道这里我觉得还是和字符编码有一定的关系,主要是因为页面的编码是gb2312吧,如果是utf-8的话,估计就不会有以上的限制了。回去试试看就知道了。
很简单的技巧,但是很实用,也许很多人觉得是小儿科了,不足为道。我还是比较喜欢写点简单的东西,慢慢积累~~
Posted by endless | Posted in 工具使用 | Posted on 06-11-2009
win7在10月23号发布了正式版本,因为想体验新的东西,找来同事网上下的win7旗舰版系统,装完之后配上自己T400的硬件,很流畅也很有爱。虽然遇到一些问题,比如说安装自己电脑上的程序软件总是报NSIS错误,这个网上下一个最新软件就可以解决了。真正的头大是在后面遇到的。
每次打开一个占用内存比较大的程序时候,比如打开eclispe,上一个旺旺,解压缩一个200m的文件,都会出先假死现象。页面无法进行任何操作,资源管理器也无法打开,如果你之前开着音乐播放软件的话,还是正常运行,大小写键盘也是可以切换,硬盘风扇保持转动。无语吧?怎么办?只能强制关机,然后再开机。
网上找了好久,无非三种原因:
1,硬件(电脑本身的硬件不支持或者配置不高),但是最多就是运行慢点,也不至于死机;
2,驱动(电脑的各种硬件驱动对win7的支持不一致,导致win7运行不正常),虽然说法靠谱,尤其是有人提到intel芯片要装一个Intel Matrix Storage Manager Driver for Windows 7, 告诉你这个没用;
3,win7版本,网上版本很多,也许你就很倒霉遇到了一个不靠谱的版本。
最后对比我和另外一个一张光盘装出来的系统的电脑,唯一不一样的地方就是杀毒软件不同。我的是卡巴2010,他的是NOD 32,难道真的是这个原因?
1,关闭卡巴重新尝试,失败,还是老样子假死。
2,卸载卡巴,重启,ok;
后来研究一下发现,卡巴的监控有自己独立的一套,基本上是会侵入到内存中来监控各个软件的运行情况。卡巴2010对win7的支持目前还不是很好,网上评论一片骂声。希望后面有更新能解决这个问题,我就能继续用我的key了。
我承认我是标题党,其实很简单,就是杀毒软件不兼容,随便写点吧。就当整理思路~
Posted by endless | Posted in Javascript | Posted on 04-11-2009
好久没有更新博客了,忙是第一原因,另外也是自己没有静下心来的思路写点东西了。晚上看到公司有邮件说员工自己的博客要注意考虑博客内容对公司的影响,当然更多的是注意负面影响。不过我还不至于在首页的顶上来一个免责声明:“我只是为支付宝公司工作,但我的说法并不代表官方”,做好自己的本职工作已经不易,还来折腾这些,只能说闲着蛋疼罢了。
今天难得写点技术的东西,因为测试提到一个问题因为一个id没有读取到造成他后台脚本解析报错,可是网站本省却没有报错。研究了一下发现是因为document.getElementById(“id-name”)中的id-name并不存在,代码在解析的时候却没有直接报js错误。深一步发现这段获取对象的js代码是包裹在E.onDOMReady()中的。E.onDOMReady()是我们自己基于YUI框架开发的自己的js框架,这个onDOMReady用法也就是YUI中的YAHOO.util.Event.onDOMReady.
大家都到DOMReady的用法,就是在页面完全加载完全之后执行这个方法内部的函数。而这里的加载完全是指dom和其他代码,并不包括图片的加载。这和onLoad是有区别的,onLoad是要加载完所有内容包括图片。这也是很多人喜欢用domready的一个原因,试想一下sina要是都用onLoad的话,用户可以去打瓶酱油回来再看页面了。
正是这个解析的方式,使得onDOMReady方法内部的代码一定会执行,即便里面有null和undefined的变量出现,页面也不会因此报错,也是框架的容错性需要。虽然不会产生问题,但是良好的代码习惯告诉我们,定义一个变量,最好不要出现null和undefined的情况。