April 13, 2010
全方位清理浮动
"清除浮动一个凡是做页面的人都会遇到的一个东西,但是是否大家都能够清楚的知道,全方位的了解呢?于是一闲下来了马上写了这样的一篇文章,不能讲面 面俱到,然而基本能将我所知道的倾囊相授了。\n我们粗略的一起来看看清除浮动的办法一共有多少个(IE里面用zoom:1就不写了,下一个专题再写)。对应的 DEMO 采用伪类:after进行后续空制的高度位零的伪类层清除 采用CSS overflow:auto的方式撑高 采用CSS overflow:hidden的方式产生怪异适应 采用display:table将对象变成table形式 采用div标签,以及css的clear属性 采用br标签,以及css的clear属性 采用br标签,以及其自身HTML的clear属性 粗略的看,他们都能将问题解决;然而他们另外一方面又有着各自的利弊。(一一对应) 优点结构语义化完全正确,不会产生其余的怪异问题。 缺点复用方式不当容易造成代码量急剧增大。 建议最外层轻浮动时使用,或清晰模块化复用方式的人使用。 优点结构语义化完全正确,代码量极少。 缺点多个嵌套后,点击最外层的轻浮动框会遭成最外层至最内层内容全选(FF); …"
April 13, 2010
页面重构中的模块化思维
"最近被“模块化”缠身,又是文章又是PPT的,被逼着想了很多相关的东西。整理下我这段时间对于“模块化”的思考,大多都是我自己从事页面重构这份 工作的经验和理解,在一定程度上存在局限性,也希望自己能温故而知新。\n“模块化”只是我们对于过去一直使用的技术、方法的一个新潮的称谓,就像“Ajax”。不过做为页面重构发展的一种趋势,越来越被大家重视,不自觉 也满口的“模块化”,只是你真的理解什么是“模块化”吗?\n什么是模块化? 对“模块化”的解释,在 CNKI 中就有28种。可见“模块化”思维使用的广泛。最接近页面重构中的“模块化”,现有的解释应该就是软件开发中的解释了。\n先看一下百度词条是怎么解释“ 模块化 ”的:\n模 块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体, 完成整个系统所要求的功能。模块具有以下几种基本属性:接口、功能、逻辑、状态,功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。在软件的体 系结构中,模块是可组合、分解和更换的单元。\n相关的书籍也蛮多的,有兴趣的同学可以搜一下。需 …"
April 13, 2010
用CSS 3将我们带入下一个高度吧!
"“ CSS 3 不是新事物,更不是只是围绕border-radius属性实现的圆角。它正耐心的坐在那里,已经准备好了首次登场,呷着咖啡,等着浏览器来铺上红地毯。 你看,浏览器需要跟上了…… ”\n–谨以此文纪录ISD WEBTEAM 09年Q2力作:CSS 3.0 中文参考手册\n背景\n苏昱的《样式表中文手册》为代表的 CSS2.0参考资料伴随了国内众多web设计师们走过了近10年的时光,这种影响是深远的,但随着CSS技术的不断发展,设计师们多受传统资料的影响, 不能超脱现有的篱笆,给自己背上了沉重的包袱。你是否已注意到CSS 3已经蓄势待发?你是否渴望开始使用它们却又不知从何下手呢?正当CSS 3新特性备受期待的时候,我们的CSS3.0 中文参考手册就应运而生了……\n什么是CSS 3?\nCSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。\nCSS3.0 则表示下一版本的CSS,3.0是版本号。\nCSS 3 给我们带来了什么惊喜?\nCSS3.0对于我们Web设计人员来说不只 是新奇的技 …"
April 13, 2010
[译]Efficient, maintainable CSS
"翻译自 Russ Weakley 的 Efficient, maintainable CSS 翻译自Russ大师的一篇关于如何书写高效、可维护、组件化的CSS的演示文档。Enjoy~"
April 13, 2010
深入 CSS 行高
"翻译自 Russ Weakley 的Line Height\n一个简单的, step-by-step 关于 CSS 行高的演示文档, 涵盖行间距, 如何应用各种类型的行高值, 当然还有 inline box 模型介绍, 希望能满足您 (但实战应用在中文字体或中英文字体混合,以及IE678,XP win7里,行高规则又有所不同,泪流满面)"
April 13, 2010
mysql中的表分区
"表分区为海量数据的存储提供了一种更有效率的储存方式,可通过分区将表的数据分开存储在不同的磁盘上,提高数据检索和操作的效率。\n在SQL Server中进行表分区操作,包括三个步骤:\n创建分区函数 CREATE PARTITION FUNCTION FN_Partition AS RANGE LEFT FOR VALUES (N’2008-01-01T23:59:59′, N’2009-01-01T23:59:59′, N’2010-01-01T23:59:59′)\n此分区函数采用时间进行分区,共有4个分区,边界值为括号里的时间值\n第一个分区为: 时间 第二个分区为: N’2008-01-01T23:59:59′\u0026lt; 时间 第三个分区为: N’2009-01-01T23:59:59′\u0026lt; 时间 第四个分区为: 时间\u0026gt;N’2010-01-01T23:59:59′\n创建分区方案 CREATE PARTITION SCHEME [SE_Partition] AS PARTITION [FN_Partition] TO ([xmsddgroup1], [xmsddgroup2], …"
April 13, 2010
web组件分离
"这里Web组件指Web服务器提供的所有基于URL访问的资源,比如动态内容,图片,Javascript脚本,CSS样式表\n我们可以从以下几个方面来看这些Web组件的差异\n文件大小\n文件数量\n内容更新频率\n预计并发用户数\n是否需要脚本解释器\n是否涉及大量CPU计算\n是否访问数据库\n访问数据库的操作主要是读还是写\n是否包含远程调用(RPC)\n值得一提的是,即便是同一Web组件,显然也存在特点的差异,比如负责呈现内容的动态网页和负责用户注册的动态网页,可以\n视为不用的用户组件,再比如由用户上传的大尺寸照片和站点网页的小尺寸修饰图片也存在以上方面的差异,也可以将它们区分对待。\nweb组件分离的目的是便于采用针对性的方法,使得各种Web组件能够充分利用服务器资源。如何实现web组件分离呢?\n最常见的做法是拥有不同的域名:\n如:img.run21.cn\n存放网页中的图片,指向服务器A\nupload.run21.cn\n存放用户上传的照片,指向服务器B\nstatic.run21.cn\n存放静态化的网页,指向服务器C\njs.run21.cn\n存放javascript脚本文件,指向服务器D\n当我们用不同的域 …"
April 13, 2010
如何构建高性能Web站点
"人们评估一个web站点的性能如何,通常先置身于用户的角度,访问该站点的一系列页面,体验等待时间\n在等待的时间里,大概经历了以下几部分的时间\n数据在网络上的传输时间\n站点服务器处理请求并生成回应数据的时间\n浏览器本地计算和渲染的时间\n作为web开发人员, 大部份情况下只要从”站点服务器处理请求并生成回应数据的时间”这点去考虑和设计, 尽量的减少在这一过程的时间,针对提高站点性能上的优化大概总结有如下方案.\n1. 增加宽带\n2. 减少网页的http请求\n在不影响美观和功能的情况下,尽量减少图片和脚本\n将多个图片合并为一个文件,利用CSS背景图片和偏移技术呈现在网页中,避免多个图片的下载\n合并Javascript或者CSS\n使用浏览器端的Cache策略,减少重复下载\n3.加快服务器脚本运算速度\n脚本语言编写的程序文件需要通过相应的脚本解释器进行解释后生成中间代码,脚本加速就是在这一过程中减少生成中间代码的时间。对于一些拥有较强商业 支持的脚本语言 ,比如Java和ASP.NET,均有内置的优化方案,如解释器对某个脚本程序第一次解释的时候,将中间代码缓存起来,以供下次直接使 用。对于开源类的脚 …"
April 13, 2010
smarty缓存使用技巧
"一、使用缓存\n要开启smarty的缓存,只需将caching设为true,并指定cache_dir即可.\n使用cache_lefetime指定 缓存生存时间,单位为秒\n要对相同页面生成多个不同的缓存,在display或fetch中加入第二参数cache_id, 如$smarty-\u0026gt;display(‘index.tpl’,$my_cache_id);此特性可用于对不同的$_GET进行不同的缓存\n二、清除缓存\nclear_all_cache();//清除所有缓存\nclear_cache(‘index.tpl’);// 清除index.tpl的缓存\nclear_cache(‘index.tpl’,cache_id);//清除指定id的缓存\n三、使用自定义缓存方式\n设置cache_handler_func使用自定义的函数处理缓存\n如:\n$smarty-\u0026gt;cache_handler_func = “myCache”;\nfunction myCache($action, \u0026amp;$smarty_obj, \u0026amp;$cache_content, $tpl_file=null, …"
April 12, 2010
mysql 中的触发器语法简介
"1. 语法:命名规则\nCREATE TRIGGER \u0026lt;触发器名称\u0026gt; \u0026lt;– { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON \u0026lt;表名称\u0026gt; FOR EACH ROW \u0026lt;触发器SQL语句\u0026gt;\n触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.\n这里我有个习惯:就是用表的名字+’_’+触发器类型的缩写.因此如果是表t26,触发器是在事件UPDATE(参考下面的点(2)和(3))之前 (BEFORE)的,那么它的名字就是t26_bu。\n2. 语法:触发时间\nCREATE TRIGGER \u0026lt;触发器名称\u0026gt; { BEFORE | AFTER } \u0026lt;– { INSERT | UPDATE | DELETE } ON \u0026lt;表名称\u0026gt; FOR EACH ROW \u0026lt;触发的SQL语句\u0026gt;\n触发器有执行的时间设置:可以设置为事件发生前或后 BEFORE | AFTER 。\n3. 语法:事件\nCREATE TRIGGER \u0026lt;触发器名 …"