存档

‘网站建设’ 分类的存档

网页加速开源实用工具:GOOGLE Page Speed

2009年11月28日 没有评论

在网站开发中,我们做的页面经常会犯一些错误,使页面变得非常大,这样,不但影响客户的反应速度,降低用户的体验,也浪费带宽,提高成本,特别对于流量大的时候,这种浪费通常是可怕的。

最容易出现的问题就是图片非常臃肿,CSS定义效率低等问题。

2009年6月,GOOGLE针对FIREFOX推出了Page Speed加速工具,能够分析我们网页的问题。Yahoo也推出过类似工具。

此工具仅支持FIREFOX,我也建议大家用FIREFOX,并且制作网页考虑其兼容性。

先下载FireBUG插件,http://getfirebug.com/,然后下载Page Speed插件,安装后再FF右下有个蜘蛛的图形,可以对页面进行分析。

我们可以看一个下面截图的例子,可以看出,这个站点的图片容量可以优化100K,接近50%,出现这个问题的主要原因是对大图进行强制定义大小,而没有再次生成。

具体的功能看自王丽娟翻译的一篇文章:http://www.infoq.com/cn/news/2009/06/Page-Speed

//——————————————————————————-引用!

Google刚刚开源了Page Speed,这是一个Google优化其网站,特别是加速网页加载的内部工具。

Page Speed是运行在Firebug里的Firefox插件。该工具可以运行在Linux、Mac和Windows XP/Vista之上。Page Speed在运行时会分析一些Web服务器配置和服务器上下载下来的代码,还会创建一个结果列表,其中包括如何改进网页的建议。分析基于一个分为五类的最佳实践列表:

  • 优化缓存——让你应用的数据和逻辑完全避免使用网络
  • 减少回应时间——减少一连串请求-响应周期的数量
  • 减小请求大小——减少上传大小
  • 减小有效负荷大小——减小响应、下载和缓存页面的大小
  • 优化浏览器渲染——改善浏览器的页面布局

这些实践考虑了页面加载时间,以及发出页面请求到客户端看到结果之间的时间。页面加载时间包括创建TCP连接、解析DNS名称、发送请求、获取(包括来自于缓存的)资源、执行脚本、渲染。

该工具提出的建议有:

  • 避免使用CSS表达式
  • 结合使用外部的CSS
  • 结合外部的JavaScript
  • 推迟JavaScript的加载
  • 启用gzip压缩
  • 利用浏览器缓存
  • 利用代理缓存
  • 减少JavaScript
  • 减小Cookie大小
  • 减少DNS查找
  • 减少重定向
  • 优化图片
  • 优化样式和脚本的顺序
  • 跨主机名并行下载
  • 将CSS放在文件头部
  • 删除用不到的CSS
  • 始终从一个URL为资源提供服务
  • 在没有Cookie的域里处理静态内容
  • 指定图片尺寸
  • 使用有效率的CSS选择器

这 些建议根据优先级排列。比如说,在加载Facebook的主页时,已知的高优先级建议是:“在文件头部先包含外部的JavaScript文件,然 后再将外部的CSS文件包含进来。为了保证并行下载CSS文件,始终要在包含外部JavaScript之前先包含外部CSS。”

Page Speed的活动版面显示了所有浏览器的活动,包括网络事件和JavaScript代码完成的时间(单位:毫秒)。要想看看在尝试加载特定页面时,浏览器 在哪里花费了最多的时间,这是非常有用的。总之对Web开发人员来说,Page Speed似乎是一个必备的工具。

WAP 2.0介绍和使用规范

2009年9月17日 没有评论

WAP 2.0介绍和使用规范

—— XHTML MP and WCSS
一、WAP的常识(省略)
二、XHTML MP
(一)XHTML MP 介绍
XHTML MP(eXtensible HyperText Markup Language Mobile Profile)
WAP2.0
与WCSS(WAP CSS /WAP Cascading Style Sheet)配套使用
是XHTML的子集
XHTML Basic (XHTML子集)+另外的一些XHTML的元素和属性
WAP浏览器与互联网之间
以前WAP网站(WML and WMLScript )
更多的展示表现(presentation control )
(一)XHTML MP 介绍
优势:开发的站点可以在WEB和无线上都可以使用,也可以用任何Web浏览器访问WAP2.0应用
向后兼容:XHTML MP / WCSS 和 WML / WMLScript
(二)无线标记语言发展
HTML:WAP发展的首要任务——移动电话,PDA等访问互联网。WAP standard (WML and XHTML Mobile Profile) 类似HTML
WML(Wireless Markup Language) 1.x:WAP 1.x 规范中规定的标记语言,无线设备的第一个标记语言。Openwave、Nokia 和 Ericsson 很早都有自己的标记语言。WML规范是WAP Forum(97)创建的。而现在,很多的WAP站点依然使用的是WML。
XHTML:结构比HTML更简洁和严格。这对于无线设备(例:移动电话)很重要,对于有限的处理能力。
XHTML Basic :是XHTML的一个简化版本。为处理能力和性能有限的设备设计的(移动电话,PDA,呼机等)但是不包含XHTML特性。例如CSS,frames和Scripting。是由W3C定义的。
XHTML MP: 在WAP2.0说明中指定的官方标记语言。WAP Forum 基于 XHTML Basic创造,并从XHTML的完整版本中增加了一些元素和属性。例 如<i>,<b>,<small>,<big>和<hr>。XHTML MP支持一个简单的CSS版本,即WCSS/WAP CSS。
WCSS/WAP CSS: CSS2的一个简化版本,增加了WAP特有的扩展。可以很简单的改变XHTML MP页面的布局和风格。
WML2.0: WAP站点开发者不需要顾虑WML2.0。WML2.0向后兼容,并且对于WAP站点开发者还不可用。

(三)XHTML MP的优点
最大优点:开发者可用相同的技术开发适用于WEB和WAP的站点。
有HTML、XHTML、CSS基础即可入门。
同样的开发工具可以用来开发WEB和WAP站点。
开发过程中一般的WEB浏览器可以浏览你的WAP站点。
HTML/XHTML页面可以通过较小的修改成XHTML MP,甚至不用修改(注意:布局是否适应小屏幕,文件大小是否出最大)。
支持WCSS。移动设备有很多不同的特征,比如屏幕大小,只需写一次结构,使用不同的WCSS文件即可。
更多的表现控制。

(四) 不支持的WML 特性
1. XHTML MP 不支持<deck>和<card>标签。
在XML中,一个文件可以包含一个或更多的card,所有的card组合成一个deck,并在无线设备中一同被下载。WAP浏览器每次只显示一个 card,可以通过锚链接访问其他的card。通过这些,减少了服务器的往返的访问。对性能的提高是有意义的。在XHTML MP中要实现类似的特性,可以使用multipart messages(多个文档放到一个请求)另外一个方式是使用目标锚(一个页面的不同位置)。
2. XHTML MP 不支持<timer>标签
<head> &nbsp;&nbsp;<meta http-equiv=”refresh” content=”10;URL=http://www.planabc.net/” /> </head>
<meta>元素10秒后告诉WAP浏览器URL。
注意点:WML timer 仅当进入card,而HTML refresh timer当进入XHTML MP页面。

3.   XHTML MP 不支持事件。
WML支持四个事件(ontimer,onenterbackward,onenterforward,onpick),除ontimer其他事件无法模拟。如要使用,需使用WML1.X。
4.    XHTML MP 不支持变量。
在XML,可以声明变量,并赋值,拥有全局作用域。可以在任何的deck和card中使用。XHML MP放在服务器端处理(必须发送并保存)。
5.    XHTML MP 不支持客户端脚本。
在XML,你可以使用客户端脚本(WMLScript)。JavaScript的简化版,常用来验证数据。放在服务器短处理。将来的版本将会支持客户端脚本(ECMAScript MP),支持所有的WMLScript功能。

6.   XHTML MP 不支持可编程序软键(Programmable SoftKeys)。
WML的一个最大特征。通过<do>标签使用。在XHML MP中可以使用 accesskey 属性。锚链接和提交按钮支持这个属性:
<a accesskey=”1″ href=”part1.xhtml”>XHTML MP Tutorial Part 1</a
WCSS中的-wap-accesskey属性也可以用来定义:a.wcss_class_1 {-wap-accesskey: 1}
7.    XHTML MP 不支持<u>标签。
在XML,<u>用来在一些文字下添加下划线。可以用WCSS中的text-decoration属性。
8.    XHTML MP 不支持Input框的format属性。
在XML,可以定义类型和字数限制。可以使用WCSS中的-wap-input-format属性,语法一致。比如限制5个数字字符:input {-wap-input-format:”5N”}

9.   XHTML MP 不支持锚链接传输数据。
<p> &nbsp;&nbsp;姓名:&nbsp;&nbsp;<input name=“name”/><br/> &nbsp;<anchor> <go method=“get” href=“yuanxin.php”><postfield name=“name” value=“$(name)”/></go> &nbsp;提交&nbsp;&nbsp;</anchor> </p>
<form action=“yuanxin.php” method=“get”> &nbsp;       <p>姓名:&nbsp;&nbsp;&nbsp;&nbsp;<input name=“name”/><br/><input type=“submit” value=“提交”/></p> </form>
(五) 语法规则
标签必须完全闭合。
标签和属性必须小写。
属性值必须包含在引号标记内。
不允许无属性值存在。
标签必须完全嵌套。
(六)MIME 类型和文件扩展名
MIME类型: application/vnd.wap.xhtml+xml、application/xhtml+xml 、text/html。
动态生成MIME类型。获得HTTP请求中的accept header信息。
文件扩展名:.xhtml、.html、.htm

(七)文档结构
必须包含<html>, <head>, <title>和<body> 元素。

<?xml version=”1.0″?>
<!DOCTYPE html PUBLIC “-//WAPFORUM//DTD XHTML Mobile 1.0//EN” “http://www.wapforum.org/DTD/xhtml-mobile10.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Hello world</title>
</head>
<body>
<p>Hello world. Welcome to taobao.com.</p>
</body>
</html>

XML声明和字符编码:<?xml version=”1.0″ encoding=”UTF-8″?>
UTF-8/16编码可省略。XML声明也不是必须的,但如果忽略在许多WAP浏览器中出错。
必须有DOCTYPE声明。在XML声明和<html>元素之间。
<html>、<head>、<link>、<title>、<body>
<p>元素,align属性已经去除,可以通过WAP CSS的text-align属性来设置。
(八)通用的元数据
使用<meta/>标签,包含在<head>内
WAP浏览器如果不理解则忽略。
比如添加作者:<meta name=”author” content=“yuanxin”/>
Cache Control:<meta/>标签的一个应用是控制XHTML MP文件在Cache中的存在周期:
<meta http-equiv=”Cache-Control” content=”no-cache”/>
<meta http-equiv=”Cache-Control” content=”max-age=0″/>
注意点:与设备相关。一些使用不相的方法,一些没有Cache机制。还有一些不支持<meta/>但识别Cache-Control:no-cache的
HTTP头。也可应用于图片的缓存。

周期性刷新。必须配合使用。不是所有浏览器都支持。
<meta http-equiv=”Cache-Control” content=”no-cache”/>
<meta http-equiv=”refresh” content=”15;URL=yuanxin.xhtml”/>
(九)常用标签介绍
1.   注释:<!– — >,和HTML和WML1.X相同。
2.   换行:<br/> ,和HTML和WML1.X相同。
3.   水平线:<hr/>。不能包含在<p></p>标签之内。
4.   标题:<h1>-<h6>(不同的大小和样式),有些设备看起来一样的。
5.   字体样式:XML可以使用标签来改变字体样式( <b>、<i>、<small>、<big>等)。但一些浏览器只支持其中的部分,不支持的忽略,不会出错。 WCSS 控制字体格式。
6.   格式化文本:在XHTML MP中,标签间空白不显示,此外,段落中2个或更多的空白只显示一个,如果想保持文字的格式,可使用<pre>。
7.   列表:<ul>、<ol>、<li>。对于<ol>元素,可以用属性 start 指定数字开始的序列。还可以用WCSS来做更精确的控制。
8.   显示图片:<img>标签用来显示图片。和HTML一样。如果文件没发现或者图片格式不支持,显示alt属性文本。Height和width属性来指定图片显示区域的高度和宽度
除了老的WBMP图片格式,WAP2.0还支持WEB上的图片格式(gif, jpg和PNG),但WAP2.0无线设备支持上面图片格式的某些。GPRS-gif,CDMA-png。可以通过accept HTTP header判断设置。
关于大图片的发布:很多WAP浏览器都没有水平滚动功能。如果宽度大于显示屏,很多的WAP浏览器会裁切图片。图片的按比例缩小不能帮助提升性能。大图片还会造成访问站点用户的费用。
优化图片:1、用制图软件按比例缩小图片;2、如果是gif图片,减少颜色,但降低了图片质量,权衡。3、如果是jpg图片,保存一定的压缩比例,依然是权衡。
使用multipart messages,先下载的XHTML MP文档,后请求图片,产生多个请求。该方式可以使文档和图片在一个请求,意味着一个页面只有一个请求。减少服务器的压力。
9.   表格:创建表格,需要使用<table>、<tr>、<td>标签,默认表格没有边线。属性有rowspan和colspan。
10.   锚链接:一般用在导航。标签为<a></a>。属性href定义指定的URL。当前页面位置的跳转:先设置目标链接,通过id属性设置;再设置锚链接的URL为#id名称。
对锚链接设置快捷键:<a>标签的accesskey属性,有效的值为:*,#,0-9。还可以用-wap-accesskey设置。

11.   选择列表:选择列表使用<select>标签,包含一个或更多的<option>标签。<select>标签的name属性定义选择列表的名字。name用来取得被选择的item的值(option的value属性定义)。
1.   多重选择列表:Option的selected属性用来设置默认的option。如果想设置多重选择列表,可使用<select>标签的multiple属性,只有一个唯一值‘multiple’。
2.   Option分组:使用<optgroup>标签,label属性定义option组的名称。

12.   输 入元素:Text field、Password fireld、Checkbox、Radio button、Hidden field。通过<input>元素创建。传输数据到服务器,<input>元素必须和<form>一起使用。 Type属性用来定义input元素的类别。Name属性用来定义名称,方便取得用户数据。
<input type=”text” name=“taobao” maxlength=”16″ value=“yuanxin”/>
input { -wap-input-format: “10N”}
<input type=”password” name=“taobao”/>
<input type=”checkbox” name=“taobao” value=“yuanxin” checked=”checked”/>
<input type=”radio” name=“taobao” value=“yuanxin” checked=”checked”/>
<input type=”hidden” name=“taobao” value=“yuanxin”/>

13.   form元素:<input>、<select>等元素不能直接包含在form元素下,XHMTL MP标准规定必须有块级元素。如果有non-ASCII字符,需使用POST方法来避免编码问题。
<form  method=”get” action=“yuanxin.asp”>        <p> &nbsp;&nbsp;&nbsp;       &nbsp;       <input …> &nbsp;&nbsp;&nbsp;&nbsp;              <select …>        </p> </form>
14.  提交按钮:所有的表单都必须包含一个提交按钮。<input>元素用来创建一个提交按钮。而type属性被定义为’submit’。
<input type=”submit” value=”OK”/>

15.   重置按钮:并不是必须的。<input>元素用来创建一个重置按钮。而type属性被定义为’reset’。
<input type=”reset” value=”Default”/>
16.   Div和Span

三、WCSS/WAP CSS
(一)WCSS 介绍
WCSS/WAP CSS/Wireless CSS/Wireless Profile CSS(WAP Cascading Style Sheet )
是CSS2的子集+一些WAP特有的扩展
目的:定义文档的风格和布局,从文档内容中分离。
重要性:不同的手机设备有多样的特征,比如屏幕大小。
WML不支持WCSS
W3C CSS Mobile Profile和WAP CSS 不同。
(二)使用WCSS的优势
主要:学习成本降低,可用相同的开发工具,可用WEB浏览器浏览。
表现和结构的分离:匹配不同无线设备的特征(屏幕大小)、不同客户端代理(PC、PDA、手机);降低维护成本(新手机);改变视觉和布局仅需CSS;重复使用CSS;便于工作细分。
比WML更好的控制表现:可以定义元素的color,font,background,border,margin,padding等属性。
移动设备第一次访问站点下载样式(Cache)。
使用外部WCSS,XHTML MP的文档大小变小,提高下载时间。

(三)使用WCSS的劣势
不同的WAP浏览器对WCSS的支持不同,可能一个属性在这个WAP浏览器上支持,而另外一个不支持。
外 部的WAP CSS可能增加第一次访问页面的请求时间。原因:外部WCSS不存在于手机的Cache,必须从服务器下载;XHTML MP文档和外部的WCSS下载是不同的请求,增加了服务器压力;如果使用一个WCSS定义WAP站点的所有表现,该文件大小可能很大;WAP浏览器需要解 析WCSS到XHTML MP文档。
(四)MIME 类型和文件扩展名
MIME类型: text/css。
文件扩展名:.css

(五)WCSS的语法规则
WCSS声明:selector {property: property_value}
多个属性允许的,用’;’分隔。
多个选择器也是允许的,用‘,’分隔。
注释:/*orz*/,WAP浏览器将忽略这些内容。
(六)如何在XHTML MP文档中应用
链接外部WCSS(推荐),放置在文档的head部分,用style属性定义WCSS样式
<link href=“url” rel=“stylesheet” type=“text/css”/>,可以多个,无需修改rel和type属性。
<style type=”text/css”> &nbsp;some WCSS statements </style>
<hr style=”color: blue”/>
(七)不同的选择器
类型选择器:h1 { font-style: italic} 元素名称必须小写。
Class选择器: .class { color:blue} 对应标签的class属性,还可以联合元素名称使用 h1.class {color:blue}。
ID选择器:#id {color:red} 对应标签的id属性也可联合元素名称。
通用选择器:* { color:blue} ,所有的标签。注意:在某些WAP浏览器上会使样式渲染变慢。(建议不要用)
(八)常用的属性值
长度:%,px,em,ex,cm,mm,in,pt,pc(值和单位之间不允许有空格:margin-top:1px而不是margrin-top:1 px)。
颜色:rgb(r%;g%,b%)、rgb(r,g,b)、#rrggbb、#rgb、red(16种)。
URL:ul {list-style-image: url(bullet.gif)} 无引号、双引号、单引号均可。
(九)字体和文本属性
字体名称:p {font-family: “Times New Roman”} 名称中有空格或多个单词必须用引号包含。
字体大小:p {font-size:12px},也可以用xx-small,x-samll,small,medium,large,x-large,xx-large
字体样式:斜体、粗体和下划线(font-style,font-weight和text-decoration)。
设置文本对齐:text-align和float。WAP中float(left,right,none)常用在img和table标签
(十)列表属性
改变无序列表的图标(list-style-type ):默认disc,其他值:circle,square,none。可以应用在ul和li元素上。
改变有序列表的次序:默认decimal,其他值:upper-alpha(A),lower-alpha(a),upper-raman(I),lower-raman(i),none
3.     使用图片文件作为小图标:list-style-image: url(bullet.gif) 。注:Openware WAP浏览器本地保存了一些icon,可以使用这些作为小图标,例如:ul {list-style-image: localsrc(“rightarrow1″)}
(十)列表属性
(十一)颜色属性和border属性
设置前景和背景颜色:color、background-color属性。
设置border样式:border-style(border-top-style等)属性,值有很多,但只有none和solid被WAP浏览器广泛支持。table {border-style: solid}
设置border宽度:border-width(同上)属性,值为数值,还接受thin、medium和thick。注:值设置border-width,border并不可见,必须设置border-style非none值。
设置border颜色:border-color(同上)属性。注意点同上。
设置border属性的快捷方式:table {border: 2px solid black}
顺序自由。
(十二)WAP特有的CSS扩展
快捷键:-wap-accesskey ,用来指定XHTML MP元素的快捷键。
Input:定义文本框是否可以留空,什么类型,可以输入多少字符
Marquee:在屏幕上滚动一些内容。
(十二.1)WCSS快捷键扩展
给元素定义快捷键:-wap-accesskey属性
可用的属性值*,#,0,1,2,3,4,5,6,7,8,9
input.wcss_class {-wap-accesskey: 4}
直接定义*和#违反CSS2语法。需要使用Unicode转义字符\2a和\23。但是有些WAP浏览器(Sony Ericsson WAP 浏览器 )要求使用\2a 和 \23,一些(Openwave 手机浏览器) 要求使用* 和#。
与元素的accesskey属性同效,如同时定义,显示该属性值。
只用于四个元素a, input,label,textarea,其他定义也无效。

(十二.2)WCSS输入扩展
由两个属性组成:-wap-input-famat和-wap-input-required,对应于WML中<input>元素的format(定义类型和字符数量)和emptyok(是否可以留空)属性。
早些的移动设备上WAP浏览器不支持,但支持format和emptyok属性作为XHTML MP的扩展。为了更好的兼容性,建议WCSS和WML都使用。
<input type=”text” format=”N” style=’-wap-input-format: “N”‘/>
控 制文本框的类型和字符数量:-wap-input-format。需应用在<input type=“text”>, <input type=“password”>和<textarea> 标签上,如应用在其他标签无效。格式字符(大小写敏感):a(小
写字母或符号),A(大写字母或符号),n(数字或符号)

(十二.2)WCSS输入扩展
N(数 字),x(小写字母或数字或符号),X(大写字母或数字或符号),m(任何字符,默认小写字母输入模式,可换大写模式),M(任何字符,默认大写字母输入 模式,可换小写模式)。属性值必须包含在引号内,由于部分Openwave 手机浏览器不支持单引号,建议使用双引号(<input type=“text” style=‘-wap-input-format: “N”’/> )
-wap-input-format: “2N” (最多两个数字)    -wap-input-format: “NN” (两个数字)   -wap-input-format: “*N” (无限个数字)
-wap-input-format: “A*a” (第一个大写字母或符号,0-n个小写字母或符号)  -wap-input-format :“*M”(默认)
格式字符前使用数字或*的原则:1、只允许一次;2、在最后

(十二.2)WCSS输入扩展
如果值语法错误,则WAP浏览器忽略该属性。
也可以包含转义字符:’\’在WCSS中是特殊字符,使用’\\’。
控制文本框是否可以留空:-wap-input-required(值为:false和true ),帮助控制文本框是否可以空白。使用元素同上。
当-wap-input-format和-wap-input-required冲突时,以required优先。

(十二.3)WCSS Marquee扩展
可以在屏幕上滚动一些内容(一行文字,一个图片,一个链接等),但一些WAP浏览器只支持滚动文字。当内容超过屏幕时很有用。
包 含四个属性和一个属性值:-wap-marquee属性值(display属性的值),-wap-marquee-dir属性(指定marquee的方 向,值:ltr,rtl-默认),-wap-marquee-loop属性(指定marquee重复的时间,infinite永远,大多数默认为 1),-wap-marquee-speed属性(指定marquee的速度,值:slow,normal-默认,fast),-wap- marquee-style(指定marquee在屏幕上如何滚动,有三个值:scroll-默认,slide,alternate)

(十二.3)WCSS Marquee扩展

二、WAP2.0设计原则

设计站点前的准备工作
界面设计、挑选核心服务、WAP设备特性统计(浏览器等)
1.       关注导航模型
一致易学的导航模型。简洁精确且快速的信息。尽可能减少输入(考虑选择列表、复选框或单选按钮等。-wap-input-format:*N;避免模式转换。首字母。 )
2.       设计导航层次
导航模型一致、少用‘返回’链接、避免深度太深(4-5)、返回首页或目录

3.       考虑小尺寸屏幕的设计
确保内容可见、<title>少于14个字符、一致的样式、减少水平滚动、利用对齐属性增加可读性(1-3)、充分利用空间(图文)、避免过多使用文本样式属性、使用短小精确的词语、避免使用过多的颜色并保持一致、不用名字描述颜色。
4.       保持较短的文档大小:内存有限,不支持WML的多card,使用锚链接等
5.       不要包含长注释、去除缩进或空格、尽量少用id和class
6.       用户任务流流畅和图片合理使用
图片不是用户目的尽少使用、避免使用大表格。

7.       页面上提供足够信息
首屏常用导航链接、搜索域、登录屏幕和大量信息;上下滚动困难,表单交互要简短。
为用户操作提供信息反馈
对用户操作、错误和问题情况提供正确的反馈。
9.       尽可能减少图片数量和减小图像容量大小
每张图片都是一个请求,降低页面显示的速度,且内容可能重排序,占用时间和资源,全站规划相同图片。
定义图像的高度和宽度属性
定义了预占位,改善用户体验,

11.       谨慎使用表格
单元格宽度使用绝对宽度;嵌套层数增加,页面复杂度和处理时间增加;表格边框避免太粗。
12.       考虑添加样式定义选项

权衡!

使用Unicode字符编写XHTML MP内容进行可用性测试

附录
1.   常用WAP模拟器
WinWAP、OpenWave、Opera

分类: 网站建设 标签: , ,

如何用 CSS 将超出显示宽度的内容隐藏起来

2009年4月30日 没有评论

关键字: css 超出 宽度 隐藏

一般的文字截断(适用于内联与块):


.text-overflow {
display:block;/*内联对象需加*/
width:31em;/*指定宽度*/
word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。不换行 */
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;/* IE 专有属性,当对象内文本溢出时显示省略标记(…) ;需与overflow:hidden;一起使用。*/
}

对于表格文字溢出的定义:
table{
width:30em;
table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
}
td{
width:100%;
word-break:keep-all;/* 不换行 */
white-space:nowrap;/* 不换行 */
overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(…) ;需与overflow:hidden;一起使用。*/
}

需要注意的是,这个东东只对单行的文字的效,如果你想把它用在多行上,也只有第一行有作用的。 这个写法只有IE会有“…”,其它的浏览器文本超出指定宽度时会隐藏。

分类: Css, 网站建设 标签: ,

精选15个国外CSS框架

2009年3月27日 没有评论

还是让我们从框架说起吧。
框架就是一个你可以用于你的网站项目的基本的概念上的结构体。 css框架通常只是一些css文件的集合,这些文件包括基本布局、表单样式、网格或简单结构、以及样式重置。比如:

  • typography.css 基本排版规则
  • grid.css 基于网格的布局
  • layout.css 通常的布局
  • form.css for 表单样式
  • general.css 更多通用规则

您还可以参考以下前端开发/CSS相关资源:

推荐12款可用于前端开发的免费文本编辑器
Web前端开发必备手册下载
推荐20个让你学习并精通CSS的网站
300+Jquery, CSS, MooTools 和 JS的导航菜单资源

下面一起来了解一下各种不同的CSS框架吧:
1.960 Grid System
CSS-框架-960

960网格系统是一个通过提供通常使用的尺寸简化网站开发流程的努力的结果,基于960像素的页面宽度。它有两种类型,12和16列,他们可以独立使用或是协同使用。

2.WYMstyle CSS Framework
CSS-框架-WYMstyle

这个项目的目的是提供一组经过良好测试的模块化的CSS文件,能够用于网站的快速设计。WYMstyle是一组CSS文件,你可以很容易的组合这些文件来快速的创建你的网站的布局。通过提供可靠的、经过良好测试的CSS模块,WYMstyle 力求让每个网站防止枯燥的跨浏览器兼容性测试。
3.YAML CSS Framework
CSS-框架-YAML

Dirk Jesse的强大的(X)HTML/CSS框架为许多的简单或更复杂的网站项目提供完整的默认模板包。YAML基于网页标准并支持所有现代浏览器。所有的 Internet Explorer的主要渲染漏洞都被解决。YAML 完全支持从5.x到7.0的所有的IE版本。
4.YUI Grids CSS
CSS-框架-YUI

基本的YUI网格CSS提供4种预设的页宽、6种预设模板和再分为2、3、4卷的区块的功能。 这个4KB的文件可提供超过1000中页面布局组合。

有国外作者曾指出YUI Grids CSS中最值得学习的网格布局CSS写法:

  • 负Margin技术
  • 使用度量单位em
  • 清除布局的浮动

5.Logicss Framework
CSS-框架-logicss

Logic CSS 框架是用来减少开发符合web标准的xHTML布局的时间的一个由CSS文件和PHP程序组成的集合。通常跨浏览器表现行为(不是Meyer的reset 文件或是用“*”),排版支持文本字体大小调整(使用EMs) 和垂直居中,符合可定义的灵活的布局网格利用css代码生成工具

6.CleverCSS
国外-CSS-框架

CleverCSS是一个用于css的受Python启发的小型的标记语言,它可用于以整洁的和结构化的方式创建一个样式表。在很多方面它都比CSS2整 洁和强大。与CSS最明显的区别是句法:它基于缩进而且不单调。虽然这显然违反了Python的规则,它依然是组织样式的很好的主意。

7.Elements CSS Frameworks
CSS-框架-elements

Elements 是一个实用的CSS框架。它是为了帮助设计师更快更高效的来写CSS而建立。Elements 已经超越了仅仅作为一个框架,它有自己的项目工作流。它拥有你完成项目所需的所有东西,这也让你和你的浏览者感到愉悦。阅读 概述 了解更多。

8.Blueprint CSS
CSS-框架-blueprint

Blueprint 是一个 CSS 框架,它的目的是减少你的css开发时间。它提供一个可靠的css基础去创建你的项目,BP由一个易用的网格、合理的布局和一个打印样式。

9.Schema Web Design Framework
CSS-框架-schema

Schema 是一个为了提供在重复的设计任务中必须的CSS和HTML标签而设计的表现层的网页框架设计。 与为每一个新的网站项目从零开始创建HTMl/CSS不同,Schema提供必要的基础来开始并立马让你的设计跑起来。

10.Emastic CSS Framework
CSS-框架-emastic

Emastic 是一个CSS框架,它有连续的任务:探索陌生的新世界,寻找新生活和新的网站空间,大胆的去CSS框架尚未到达的领域。它是轻量的、在页面宽度上比较人性化,在网格中使用固定和不固定的列宽。 Elastic 用“em”布局。

11.That Standards Guy CSS Framework
CSS-框架

* 只能调用单个样式文件
* 主样式需要取得CSS认证(WCAG 1.0);
* 跨浏览器兼容性—包括Internet Explorer (IE) 5.x for Mac;
* IE Hacks使用独立文件;
* 快速创建模板;
* 少量注释/实例演示,可以节省时间来理解。

12.Content with Style Framework
CSS-框架-content

下一个逻辑步骤就是将这个扩展为CSS框架,允许使用写好并通过测试的组件来快速开发网站。实际上所需的是搞定一套命名习惯和一个灵活的基本模板…

13.Boilerplate CSS Framework
CSS-框架-boilerplate

14.ESWAT Web Project Framework
CSS-框架-eswat

ESWAT正在重新整理。如果你是冲着我的网站框架来的,那么你就可以在这里下载。也许你也想看看我的其他项目gmachina、AppleSeed。
15.Tripoli CSS Framework
CSS-框架-tripoli

Tripoli是一个用于HTML表现的通用css规范。通过重设和重建浏览器标准,Tripoli 为你的网站项目提供了一个标准的、跨浏览器表现的基础。

英文原文:CSS Frameworks
翻译原文:css框架收集

分类: Css, 网站建设 标签:

Windows下的Memcache安装

2009年3月16日 没有评论

Windows下的Memcache安装
1. 下载memcache(http://jehiah.cz/projects/memcached-win32)的windows稳定版,解压放某个盘下面,比如在c:\memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:\memcached\memcached.exe -d install’ 安装
3. 再输入: ‘c:\memcached\memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
memcached的基本设置

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

Memcache环境测试
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?php
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
?>

memcached 的工作原理

首先 memcached 是以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API 包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。注意,这些对象并不是持久的,服务停止之后,里边的数据就会丢失。

Memcached 本身的启动过程,在 memcached.c 的 main 函数中顺序如下:

1 、调用 settings_init() 设定初始化参数
2 、从启动命令中读取参数来设置 setting 值
3 、设定 LIMIT 参数
4 、开始网络 socket 监听(如果非 socketpath 存在)( 1.2 之后支持 UDP 方式)
5 、检查用户身份( Memcached 不允许 root 身份启动)
6 、如果有 socketpath 存在,开启 UNIX 本地连接(Sock 管道)
7 、如果以 -d 方式启动,创建守护进程(如上调用 daemon 函数)
8 、初始化 item 、 event 、状态信息、 hash 、连接、 slab
9 、如设置中 managed 生效,创建 bucket 数组
10 、检查是否需要锁定内存页
11 、初始化信号、连接、删除队列
12 、如果 daemon 方式,处理进程 ID
13 、event 开始,启动过程结束, main 函数进入循环。

参看网络。

分类: 杂文, 网站建设 标签: ,