??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久亚洲AV波多野结衣,亚洲性色成人av天堂,国产精品亚洲一区二区三区在线观看 http://www.tkk7.com/qclass/解放思想Q实事求?/description>zh-cnFri, 09 May 2025 12:42:23 GMTFri, 09 May 2025 12:42:23 GMT60在线工具大全http://www.tkk7.com/qclass/archive/2008/01/05/173024.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Sat, 05 Jan 2008 12:45:00 GMThttp://www.tkk7.com/qclass/archive/2008/01/05/173024.htmlhttp://www.tkk7.com/qclass/comments/173024.htmlhttp://www.tkk7.com/qclass/archive/2008/01/05/173024.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/173024.htmlhttp://www.tkk7.com/qclass/services/trackbacks/173024.html站长工具
  eWebEditor|页~辑?/a>
  
FCKEditor在线~辑?/a>
  
HTML在线~辑?/a>
  
所见即所得CSS~辑?/a>
  
CSS整Ş與最佛_工具

  颜色工具
  配色Ҏ创徏工具?/a>
  
在线|页配色?/a>

  |络辅助
  
转脓工具
  易脓|络备忘?/a>
  
~码转换?/a>

  查询工具
  
中国站长站查询工?/a>
  
日梭万年?/a>
  
世界|络查询工具
  在线电子地图
  全国报纸杂志电子版L
  全息在线万年?/a>

  囄工具
  
Logo在线制作
  IE版图像处理工?/a>
  
囄仓库
  Eoool在线囄制作
  在线生成囄按钮的工?/a>
  
在线生成条Ş码和印章的工?/a>
  
字库字体在线工具
  在线按钮制作工具
  多媒体可视化开发系l?/a>
  
q狗吧在线彩字生成工具
  在线照片相框生成工具

  加密解密
  |页加密解密工具

  计算工具
  多功能计器

  在线手册
  l极配色手册
  q至UASP在线技术手?/a>
  
XML官方指南中文?/a>
  
Windows API 参考大?/a>
  
VBScript 语言参?/a>
  
VB API 参考手?/a>
  
PHP用户手册
  PHP~码规范
  InnoDB  中文参考手?/a>
  
文档对象模型中文手册
  |页制作完全手册
  默认行ؓ中文手册
  样式表o镜中文手?/a>
  
样式表中文手?/a>


转蝲自:http://www.egil.cn/article.asp?id=333

]]>
在javascript与flash之间游弋http://www.tkk7.com/qclass/archive/2007/12/18/168551.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Tue, 18 Dec 2007 10:00:00 GMThttp://www.tkk7.com/qclass/archive/2007/12/18/168551.htmlhttp://www.tkk7.com/qclass/comments/168551.htmlhttp://www.tkk7.com/qclass/archive/2007/12/18/168551.html#Feedback2http://www.tkk7.com/qclass/comments/commentRss/168551.htmlhttp://www.tkk7.com/qclass/services/trackbacks/168551.html  一、AS调用JSҎ时出现同名方?/strong>Q?a >查看实例Q?/p>

  AS代码如下Q?br />

import flash.external.*;
var v = ExternalInterface.available;
t_btn.onRelease 
= function (){
//调用JS函数
var s = ExternalInterface.call("say","JS函数调用成功!")
//调用AS本地函数
+= say("\n本地函数调用成功!");
r_txt.text 
= s;
}
//AS本地函数
function say(s){
return s;
}  
HTML代码Q?/span>//定义一个JS函数
function say(txt){
return txt;
可以看到在JS中定义了一个sayҎ供AS调用Q现在我们在AS中定义了一个同名的sayҎ来验证它们是否会出现覆盖。结果证明它们不会覆盖,都工作得很好?PS:不错?

二、JS调用ASҎ时出现同名方?/strong>Q?a >查看实例Q?/p>

  AS代码如下Q?br />

//导入?/span>
import flash.external.*;
//提供JS讉K的函数名
var _method:String = "say";
//指定本地函数中this变量的作用域Q可讄为null留空
var e_area:Object = null;
//AS内部函数?/span>
var method:Function = say;
//函数注册到容器列表
var wasSuccessful:Boolean = ExternalInterface.addCallback(_method, method);
↑ q里q回的void因此无法转换为Boolean

//查看注册是否成功
if(wasSuccessful){
result_txt.text 
= "函数注册成功";
}
//本地的函?/span>
function say(txt:String) {
result_txt.text 
= txt;
}

HTML代码如下Q?/font>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh_cn" lang="zh_cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript 调用 flash Ҏ</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
</head>
<body bgcolor="#ffffff">
<!--q中用的 URL-->
<!--q中用的文本-->
<!--
<p>你们?lt;/p>
-->
<!-- saved from url=(0013)about:internet -->
    
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="550" height="400" align="middle" id="myFlash">
    
<param name="allowScriptAccess" value="sameDomain" />
    
<param name="allowFullScreen" value="false" />
    
<param name="movie" value="flashdcss.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />    <embed name="myFlash" swLiveConnect="true" src="flashdcss.swf" quality="high" bgcolor="#ffffff" width="550" height="400" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    
</object>
<SCRIPT LANGUAGE=JavaScript>
var InternetExplorer = navigator.appName.indexOf("Microsoft"!= -1;
function myFlash_DoFSCommand(command, args) {
var myFlashObj = InternetExplorer ? myFlash : document.myFlash;
alert (args);
}
if (navigator.appName && navigator.appName.indexOf("Microsoft"!= -1 && 
navigator.userAgent.indexOf(
"Windows"!= -1 && navigator.userAgent.indexOf("Windows 3.1"== -1) {
document.write('
<SCRIPT LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('Sub myFlash_FSCommand(ByVal command, ByVal args)\n');
document.write(' call myFlash_DoFSCommand(command, args)\n');
document.write('end sub\n');
document.write('
</SCRIPT\> \n');

</SCRIPT>

<script>


//定义一个JS本地函数
function say(s){
thisMovie(
"myFlash").say(s);
//↑q里的demo指的是用Object插入flash的时候指定的id和embed指定的nameQ例如:id="demo"和name="demo"

alert(s);
}

//览器兼容访问DOMQƈ且将 flash Objectq回
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft"!= -1) {
return window[movieName]
}
else {
return document[movieName]
}
}

</script>


<form name="www">
内容Q?/span><input type="text" name="sendText" maxlength="45" onChange="say(this.value)" > 
</form>
</body>
</html>

可以看到在AS中定义了一个sayҎ供JS调用Q现在我们在JS中定义了一个同名的sayҎ来验证它们是否会出现覆盖。结果证明它们不会覆盖,都工作得很好?PS:也不错~)

  通过上面的两个例子我们可以得出结?strong>在用ExternalInterface时即使定义了同名ҎQ也不会造成Ҏ覆盖Q你大可攑ֿ使用?/strong>



其余
============================================================
 在论坛上l常看见有新手问?#8220;我想让FLASH得到URL中的参数IDP该怎么办?”“某某视频|站的FLASH播放器是如何播放不同ID的视频的Q?#8221;...诸如此类问题看到了太多,每次都有一堆回帖,众说ULQ里面难免有误导性质的回复。今天特l合自己qx工作中用的心得Ҏc问题做一个小的归纳?br />   我所指的静态传?/strong>是区别于与服务端通信q行g递的方式Q例如LoadVarsQXMLQRemoting之类Q后者暂且不在本文的讨论范围内,当你惌FLASH获取URL中的参数Ӟ你ؓ何不换个角度想了Q其实我们可以让服务端动态生成SWF的的插入代码Q主动将我们需要的参数“静?#8221;传递给FLASHQFLASH直接用就可以了,Ҏ不需要自己去拿,而以何种形式传递给FLASHQ就是我所指的静态传倹{我知道的可行的HTML与FLASH之间的静态传值方法有三种Q?
  • SWF地址后用参C递符“Q?#8221;
  • FlashVars传?/strong>
  • JS控制

  下面来具体介l下q三U方式的传递是如何工作的:
  

一、SWF地址后用参C递符“Q?#8221;

  我们知道Q在ULR地址中用参C递符“Q?#8221;可以以GET方式传递参敎ͼ例如http://www.v-sky.com?uid=12&uname=vskyQ这里用了参数传递符“Q?#8221;Q同时用了q接W?#8220;&”做ؓ变量分隔标识Q以q种规范的格式来传递两个参敎ͼuid=12和uname=vskyQ那么服务端可以使用GET方式获取q两个倹{?br />   在FLASH中我们同样可以采用类似的方式来传递参敎ͼHTML面中插入SWF文g最常用的就是用Object标签和Embed标签l合的方式,q也是Adobe的推荐方式:
  
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf?uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf?uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>



  其中_体部分对应的就是SWF文g的地址Q那么我们可以在q个地址后面通过cM于URL中GET方式传参的方法来个SWF传递参敎ͼ例如上面代码在页面完全加载完毕时Q它已经lSWF文g写入了两个变量:uid=12和uname=vsky?br />
  

二、FlashVars传?/p>

  你可以查阅FLASH帮助文档来看FlashVars的官方定义。其实在HTML语法中,q是一个被很多新手所忽视的属性,同样以上面的参数ZQ下面用FlashVars来传递变量:

<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf" />
<param name="FlashVars" value="uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf" FlashVars="uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>


  跟方式一相同Q它也是直接lFLASH里添加了q两个变量。但我个?strong>推荐使用此方?/strong>Q结?font color="#80ae14">SWFObject的?/font>Q用FlashVars来传递变量有很多好处Q例如代码清晎ͼҎ理Q浏览其兼容Q符合标准。他们的l合使用?#8220;为FLASHE序构造灵zȝ接口”一文中我已l做了介l(PS:随后我会提供一个复杂点的、有说服力的实际应用来说明这U灵zL口的使用)?br />   

三、JS控制

  对于客户端页面中的资源,JS通过DOMl构来控制它们可以说是随心所Ʋ的QFLASH也不例外Q下面是Flash Player的JavascriptҎ一览表:


Play() ————————————? 播放动画
StopPlay()————————————停止动?br /> IsPlaying()——————————?#8211; 动画是否正在播放
GotoFrame(frame_number)————? 跌{到某?br /> TotalFrames()—————————? 获取动画d?br /> CurrentFrame()——————————回传当前动L在?1
Rewind()———————————?使动画返回第一?br /> SetZoomRect(left,top,right,buttom)—?攑֤指定区域
Zoom(percent)——————————改变动d?br /> Pan(x_position,y_position,unit)————动画在x,y方向上^U?br /> PercentLoaded()————————?q回动画被蝲入的癑ֈ?br /> LoadMovie(level_number,path)——?#8211; 加蝲动画
TGotoFrame(movie_clip,frame_number)- movie_clip跌{到指定?br /> TGotoLabel(movie_clip,label_name)—?movie_clip跌{到指定标{?br /> TCurrentFrame(movie_clip)————?回传movie_clip当前?1
TCurrentLabel(movie_clip)————?#8211;回传movie_clip当前标签
TPlay(movie_clip)—————————播放movie_clip
TStopPlay(movie_clip)——————?停止movie_clip的播?br /> GetVariable(variable_name)————?#8211;获取变量
SetVariable(variable_name,value)——?#8211;变量赋?/strong>
TCallFrame(movie_clip,frame_number)—call指定帧上的action
TCallLabel(movie_clip,label)————?call指定标签上的action
TGetProperty(movie_clip,property)—?#8211;获取movie_clip的指定属?br /> TSetProperty(movie_clip,property,number)——?讄movie_clip的指定属?/font>


  在这里我们只需要用的是粗体标识的SetVariableҎQJS通过调用此方法能够直接更改SWF中的变量倹{首先我们需要定义插入的SWF的IDQ例如id为VskyDemoQ那么我们可以通过下面的JS语句来完成SWF内部变量的设|:



  很简单吧Q就是这L。除非是涉及CHTML中SWF之外元素跟它交互Q否则我一般不使用JS来控制SWF里的变量Q因为我总觉得怪怪的Q呵呵,个h习惯吧?br />   多多实践Q不要觉得这些小东西不v|东西多了,聚结C起了是一个大的应用?/strong>
  条条大\通北京,选择你自己喜Ƣ的Q自pZL方式可以了Q目前我是没有发现这三个方式存在功能上的~陷?/p>
======================================================================================

前言、JavaScript和Macromedia Flash的通信CZ

原文地址: http://www.macromedia.com/support/flash/ts/documents/java_script_comm.htm
说明: 略作修改,主要是一些很初的操? 又很多相似的文章,不过q个很权?

下面是一些在Flash和用Javascript的HTML文g直接通信的示?每个CZ都有略的步骤

本文讨论?U基本的Flash/Javascript通信方式:
Javascript ?Flash的通信----使用Flash播放器的javascriptҎ
Flash ?Javascript的通信----使用Flash的fscommand
Flash ?Flash的通信----------使用本地q接对象或综合上2U技?/p>

q不是所有的览器都很重视脚?Z和Flash播放器通信,览器必L内置的钩子以便Flash播放器可?监听'.览器必L下列的几U?
Netscape Navigator 3.0-4.7x, ?Netscape 6.2或更?/strong>
(Windows 95/98/NT/2000/XP ?MacOS; 允许Java和LiveConnect)
Internet Explorer 3.0 或更?/strong>
(仅Windows 95/98/NT/2000/XP; 允许ActiveX)

注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持这U方?h看本文的附加信息

一、Javascript到Flash的通信

q个例子演示了如何用Flash的method把变量从HTML的input text 发送到该页面中的Flash文g?HTML input的数据通过Flash的SetVariableҎ传送到Flash文g?

查看CZ:CZ
下蝲源文? javascript_to_flash.zip(17k)

步骤:

Flash?br /> 1.新徏一个文?保存为javascript_to_flash.fla
2.用文字工具在舞台上创Z个文本域
3.选择q个文本?在属性面板中,从下拉列表中选择动态文?Dynamic Text),在变?variable)栏填?myVar"
注意:最好的习惯是用Instance,用myVar.text更改myVar的?Z单v见和兼容Flash4和Flash5,我们使用的是变量名的形式.
4.保存文g
5.发布HTML文g和SWF文g

Dreamweaver?br /> 下一步的工作转移到Dreamweaver中了,当然也可以是其他的HTML~辑?br /> 1.打开上一步发布的HTML文g
2.插入生成的SWF文g和OBJECT/EMBED标签
(1) Insert>Media>Flash,q择q个Flash
(2) 切换C码视?我们需要修改被选中?lt;OBJECT>?lt;EMBED>标签
(3) 在OBJECT标签?插入id="myFlash"

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0" 
 width=366 height=142 id="myFlash">

注意:如果你是_脓复制代码的话,保删除不必要的换行.否则可能会引起错? id也可以在属性面杉K直接输入
(4) 在EMBED标签?插入name="myFlash"和swLiveConnect="true",保没有使用id属?代码应当是这样子?

<embed src="javascript_to_flash.swf" quality=high width=366 height=142
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash"
name="myFlash" swLiveConnect="true">
</embed> 

3.创徏表单?br /> (1) 回到设计视图
(2) 插入文本?Insert> Form Object> Text Field),如果询问是否d表单?选择?br /> (3) 把文本域的HTML标签修改成这?

<input type="text" name="sendText" maxlength="45"
onChange="doPassVar(this)">

每当文本域内容发生变化时,onChangep触发,doPassVar()函数p调用

4.创徏传递变量值的Javascript函数
复制下面的Javascript?lt;head></head>标签?/p>

<SCRIPT LANGUAGE=JavaScript>
<!--
function doPassVar(args){
var sendText = args.value;
window.document.myFlash.SetVariable("myVar", sendText);
}
//-->
</SCRIPT>

5.保存文g,试一?F12)

二、Flash到Javascript的通信

从HTML可以发送数据到Flash,反过来也可以. q个例子演示了如何应用Flash的Fscommand来发送数据到Javascript.

查看CZ:CZ2
下蝲源文? flash_to_javascript.zip(10K)

要步?
Flash?br /> 新徏一个文?保存为flash_to_javascript.fla
创徏一个文本域,讄成输入文?Input Text),选择"border"以便我们能看C,指定他的变量为inputVar
创徏一个按?在按钮上d如下的as:

on (release) {
fscommand ("send_var", inputVar);
}

保存文g,导出HTML和SWF

Dreamweaver?br /> 1.打开导出HTML文g,修改<OBJECT>?lt;EMBED>标签,l果同上:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0"
width=366 height=142 id="myFlash">
<embed src="javascript_to_flash.swf" quality=high
width=366 height=142
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash" name="myFlash" swLiveConnect="true">
</embed>

2. 插入如下的Javascript?lt;Body>标签?

<SCRIPT LANGUAGE=JavaScript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
function myFlash_DoFSCommand(command, args) {
   var myFlashObj = InternetExplorer ? myFlash : document.myFlash;
   alert (args);
}
if (navigator.appName && navigator.appName.indexOf("Microsoft")
!= -1 &&
navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows
3.1") == -1) {
document.write('<SCRIPT LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('Sub myFlash_FSCommand(ByVal command, ByVal args)\n');
document.write(' call myFlash_DoFSCommand(command, args)\n');
document.write('end sub\n');
document.write('</SCRIPT\> \n');
}
//-->
</SCRIPT> 

三、Flash和Flash的通信

通过上面两种Ҏ的؜和?同一HTML中两个或者更多的Flash直接可以怺传送消? 从一个flash使用fscommand传送消息给Javascript,使用Flash的Javascript methods把消息传l另外一个flash

详细的看q里:Flashq之间的通信CZ

从Flash MX开?local connection对象可以用来在flash之间传送消? q得同一HTML中的或者位于两个浏览器H口中的两个flashq可以怺发送消?而不必用Javascript或者fscommand
详细的看q里:在Flash MX中用local connection对象(英文Q?/p>

本站的localConnection教程Q?a target="_blank">http://www.flashempire.com/school/tutorview.php?id=327

附可控制Flash Player的JavascriptҎ:
一览表:
Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跌{到某?
TotalFrames()------------------------------- 获取动画d?
CurrentFrame()------------------------------回传当前动画所在?1
Rewind()-------------------------------------使动画返回第一?
SetZoomRect(left,top,right,buttom)-------攑֤指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动dx,y方向上^U?
PercentLoaded()----------------------------q回动画被蝲入的癑ֈ?
LoadMovie(level_number,path)----------- 加蝲动画
TGotoFrame(movie_clip,frame_number)- movie_clip跌{到指定?
TGotoLabel(movie_clip,label_name)------ movie_clip跌{到指定标{?
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前?1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播?
GetVariable(variable_name)-----------------获取变量
SetVariable(variable_name,value)-----------变量赋?
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属?
TSetProperty(movie_clip,property,number)-讄movie_clip的指定属




]]>
修改表结构,同时兌外表http://www.tkk7.com/qclass/archive/2007/04/13/110455.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Fri, 13 Apr 2007 07:15:00 GMThttp://www.tkk7.com/qclass/archive/2007/04/13/110455.htmlhttp://www.tkk7.com/qclass/comments/110455.htmlhttp://www.tkk7.com/qclass/archive/2007/04/13/110455.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/110455.htmlhttp://www.tkk7.com/qclass/services/trackbacks/110455.htmlalter table admin                #<---- 表名
   add CONSTRAINT `xxid_fk`      #<---- 复合主键名称
      FOREIGN KEY (`xxid`)       #<---- 表字D名
        REFERENCES `club`(`id`)  #<---- 外键表名+字段?/span>

]]>
JS实现的动态图片新?/title><link>http://www.tkk7.com/qclass/archive/2007/01/25/95946.html</link><dc:creator>QpdcR方法、变量…?/dc:creator><author>QpdcR方法、变量…?/author><pubDate>Thu, 25 Jan 2007 07:25:00 GMT</pubDate><guid>http://www.tkk7.com/qclass/archive/2007/01/25/95946.html</guid><wfw:comment>http://www.tkk7.com/qclass/comments/95946.html</wfw:comment><comments>http://www.tkk7.com/qclass/archive/2007/01/25/95946.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/qclass/comments/commentRss/95946.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qclass/services/trackbacks/95946.html</trackback:ping><description><![CDATA[ <div id="rx7v3jr" class="textbox-content" id="zoomtext"> <p>动态图片新?JS实现.</p> <br /> <p><script language="JavaScript"><br />var imgUrl=new Array();<br />var imgLink=new Array();<br />var imgText=new Array();<br />var picNum=0;<br />imgUrl[1]="囄地址一";<br />imgLink[1]="链接1";<br />imgText[1]="标题或简介或其它HTML内容1";<br />imgUrl[2]="囄地址?;<br />imgLink[2]="链接2";<br />imgText[2]="标题或简介或其它HTML内容2";<br />imgUrl[3]="囄地址?;<br />imgLink[3]="链接3";<br />imgText[3]="标题或简介或其它HTML内容3";<br />imgUrl[4]="囄地址?;<br />imgLink[4]="链接4";<br />imgText[4]="标题或简介或其它HTML内容4";<br />imgUrl[5]="囄地址?;<br />imgLink[5]="链接5";<br />imgText[5]="标题或简介或其它HTML内容5";</p> <br /> <p>function NextPic(){<br />    if(picNum<4) picNum++ ;//昄4个图?br />    else picNum=1;<br />    if (document.all){<br />        //下面注意Q如果存在于FORM表单中,需要用下面的ҎQ否则可直接使用name?br />        document.imgInit.filters.revealTrans.Transition=Math.floor(Math.random()*23);<br />        document.imgInit.filters.revealTrans.apply();<br />        document.imgInit.filters.revealTrans.play();<br />    }<br />    document.images.imgInit.src=imgUrl[picNum];<br />    //如果不是囄Q而是SWF{,可做判断Q内容可在程序中做好Q再放于下面?br />    focustext.innerHTML='<a href='+imgLink[picNum]+' target=_blank>'+imgText[picNum]+'</a>';<br />    //讄页旉<br />    theTimer=setTimeout('NextPic()', 3000);<br />}</p> <br /> <p>function goUrl(){<br />    window.open(imgLink[picNum],'_blank');<br />}<br /></script></p> <br /> <p>HTML代码中:<br />可以做到控g?br /><TABLE cellPadding=0 width=100% border=0><br />        <TR><br />          <TD align=middle height="140" ><br /><div align='center'><br /><a href='javascript:goUrl()'><img style="FILTER: revealTrans(duration=2,Transition=5)" src="javascript:NextPic()" width="170" height="120" border="1"  id=imgInit name=imgInit></a></TD></TR><br /><TR><TD align=middle height="38" ><div name=focustext id=focustext align='center'></div><br /></div><br /></TD></TR></TABLE></p> </div> <img src ="http://www.tkk7.com/qclass/aggbug/95946.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qclass/" target="_blank">QpdcR方法、变量…?/a> 2007-01-25 15:25 <a href="http://www.tkk7.com/qclass/archive/2007/01/25/95946.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>生活规律34?/title><link>http://www.tkk7.com/qclass/archive/2007/01/25/95943.html</link><dc:creator>QpdcR方法、变量…?/dc:creator><author>QpdcR方法、变量…?/author><pubDate>Thu, 25 Jan 2007 07:24:00 GMT</pubDate><guid>http://www.tkk7.com/qclass/archive/2007/01/25/95943.html</guid><wfw:comment>http://www.tkk7.com/qclass/comments/95943.html</wfw:comment><comments>http://www.tkk7.com/qclass/archive/2007/01/25/95943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/qclass/comments/commentRss/95943.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/qclass/services/trackbacks/95943.html</trackback:ping><description><![CDATA[ <div id="zjd9phn" class="textbox-content" id="zoomtext">生活规律34?br />1.不说“不可能”?br />2.凡事W一反应Q找ҎQ而不是找借口?br />3.遇到挫折对自己大声说Q太了Q?br />4.不说消极的话Q不落入消极情AQ一旦出现立x面处理?br />5.凡事先订立目标,q且量制作“梦想版”?br />6.凡事预先作计划,量目标视觉化?br />7.每一分,每一U都做有用的事情?br />8.随时用零的旉(如等人、排队等)做零的活?br />9.守时?br />10.不要太依靠脑袋记忆,好脑子不如烂W头?br />11.随时记录灉|?br />12.把重要的观念、方法写下来Qƈ贴v来,随时提示自己?br />13.走\比^时快30%。走路时Q脚稍用力推进Q肢体语a健康有力Q不懒散、萎靡?br />14.每天出门照镜子,l自׃个自信的W容?br />15.每天自我反省一ơ?br />16.每天坚持一ơ运动?br />17.听心?分钟Q在做重要事前、疲x、心情烦w时、紧张时Q?br />18.开会坐在前排?br />19.微笑?br />20.用心們֐Q不打断Ҏ说话?br />21.说话Ӟ声音有力。感觉自己声音似乎能产生有感染力的磁场?br />22.说话之前Q先考虑一下对方的感受?br />23.每天有意识、真诚地赞美别h3ơ以上?br />24.及时写感谢卡Q哪怕是用便W写?br />25.不用训斥、指责的口吻跟别话?br />26.控制自己Q遇事第一反应是不要ؓ自己辩解?br />27.每天多做一件“分外事”?br />28.不管M斚wQ每天必至做一ơ“进步一点点”?br />29.每天提前15分钟上班Q推q?0分钟下班?br />30.每天在下班前?分钟的时间做一天的整理性工作?br />31.定期存钱?br />32.节P?br />33.时常q用“头脑风暴”?br />34.恪守诚信Q说到做到?</div> <img src ="http://www.tkk7.com/qclass/aggbug/95943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/qclass/" target="_blank">QpdcR方法、变量…?/a> 2007-01-25 15:24 <a href="http://www.tkk7.com/qclass/archive/2007/01/25/95943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转帖]配置Apache服务?- Apache服务器配|全ȝhttp://www.tkk7.com/qclass/archive/2007/01/25/95941.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Thu, 25 Jan 2007 07:22:00 GMThttp://www.tkk7.com/qclass/archive/2007/01/25/95941.htmlhttp://www.tkk7.com/qclass/comments/95941.htmlhttp://www.tkk7.com/qclass/archive/2007/01/25/95941.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/95941.htmlhttp://www.tkk7.com/qclass/services/trackbacks/95941.htmlApache服务器的讄文g位于/usr/local/apache/conf/目录下,传统上用三个配|文件httpd.conf,access.conf和srm.confQ来配置Apache服务器的行ؓ?/p>

    httpd.conf提供了最基本的服务器配置Q是对守护程序httpd如何q行的技术描qͼsrm.conf是服务器的资源映文Ӟ告诉服务器各U文件的MIMEcdQ以及如何支持这些文Ӟaccess.conf用于配置服务器的讉K权限Q控制不同用户和计算机的讉K限制Q这三个配置文g控制着服务器的各个斚w的特性,因此Z正常q行服务器便需要设|好q三个文件?/p>

  除了q三个设|文件之外,Apacheq用mime.types文g用于标识不同文g
对应的MIMEcdQ?magic文g讄不同MIMEcd文g的一些特D标识,使得 Apache 服务器从文档后缀不能判断出文件的MIME cdӞ能通过文g内容中的q些Ҏ标记来判断文档的MIMEcd?/p>

bash-2.02$ ls -l /usr/local/apache/conf
total 100
-rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf
-rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default
-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf
-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default
-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic
-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default
-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types
-rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf
-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default

  事实上当前版本的Apache原来httpd.conf、srm.conf与access.conf中的所有配|参数均攑֜了一个配|文?httpd.conf中,只是Z与以前的版本兼容的原因(使用q三个设|文件的方式来源于NCSA-httpdQ,才用三个配|文件。而提供的 access.conf和srm.conf文g中没有具体的讄?/p>

  ׃在新版本的Apache中,所有的讄都被攑֜了httpd.conf中,因此只需要调整这个文件中的设|。以下用缺省提供的httpd.confZQ解释Apache?br />务器的各个设|选项。然而不必因为它提供讄的参数太多而烦|基本上这?br />参数都很明确Q也可以不加改动q行Apache服务器。但如果需要调整Apache服务
器的性能Q以及增加对某种Ҏ的支持Q就需要了解这些设|参数的含义?/p>

  关于Apache服务器的性能Q在Internet上存在很大的争议Q基本上使用Apache的用者几乎都不怀疑它的优U性能QApache也支撑了很多著名的高负蝲的网站,但是在商业机构的评测中,Apache往往得分不高。很多h指出Q在q些评测中,商业Web服务器及其操作系l往往由其专业公司的工E师q行q性能调整Q而Free 的操作系l和Web服务器往往׃用其~省配置或仅仅作很小的更攏V需要指出的是,除了操作pȝ的性能调整之外QApache 服务器本w的~省配置l不是最优化和最高效的,而是要适应几乎所有种cL作系l、所有种cȝ件下的设|,多^台的软g不可能ؓ特定q_和特定硬件提供最优化的缺省配|。因此要使用Apache的时候,性能调整是必不可的?/p>

  在商业评中忽略了的另一个事实是Q评时往往对不同种cȝ功能q行?br />较,例如使用Apache的标准CGI 的性能与ISAPIQNSAPI{服务器端API比较Q事实上Apache服务器与此可以比较的功能为modperl QFastCGIQ与ASPcM的功能ؓPHP{等Q只不过׃Apache的开放模式,q些功能是由独立的开发组Q作为独立的模块来实现的。但是在评测中,试人员没有加入相应的模块评其性能?/p>

HTTP守护q程的运行参?/p>

  httpd.conf中首先定义了一些httpd守护q程q行旉要的参数Q来军_其运行方式和q行环境?/p>

  ServerType standalone
  ServerType定义服务器的启动方式Q缺省gؓ独立方式standaloneQhttpd
服务器将由其本n启动Qƈȝ在主Z监视q接h。在Linux下将在启动文?/etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,q种方式是推荐设|?br />  启动Apache服务器的另一U方式是inet方式Q用超U服务器inetd监视q接hq启动服务器。当需要用inetd启动方式Ӟ侉K要更改ؓq个讄Qƈ屏蔽/etc/rc.d/rc.local/init.d/apache文gQ以及更?etc/inetd.confq?inetdQ那么Apachep从inetd中启动了?br />  两种方式的区别是独立方式是由服务器自w管理自q启动q程Q这样在?br />动时能立卛_动服务器的多个副本,每个副本都驻留在内存中,一有连接请求不需要生成子q程可以立卌行处理,对于客户览器的h反应更快Q性能?br />高。?inetd方式要由inetd发现有连接请求后才去启动http服务器,׃inetd 要监听太多的端口Q因此反应较慢、效率较低,但节U了没有q接h时Web服务器占用的资源。因此inetd方式只用于偶被讉Kq且不要求访问速度的服务器上。事实上inetd方式不适合http的突发和多连接的Ҏ,因ؓ一个页面可能包含多个图象,而每个图象都会引起一个连接请求,即虽然讉K人数造成教少Q但瞬间的连接请求ƈ不少Q这受到inetd性能的限Ӟ甚至会媄响由inetd启动的其他服务器E序?/p>

  ServerRoot "/usr/local"
  ServerRoot用于指定守护q程httpd的运行目录,httpd在启动之后将自动?br />q程的当前目录改变ؓq个目录Q因此如果设|文件中指定的文件或目录是相?br />路径Q那么真实\径就位于q个ServerRoot定义的\径之下?br />  ׃httpd会经常进行ƈ发的文g操作Q就需要用加锁的方式来保证文件操作不冲突Q由于NFS文gpȝ在文件加锁方面能力有限,因此q个目录应该是本地磁盘文件系l,而不应该使用NFS文gpȝ?/p>

  #LockFile /var/run/httpd.lock
  LockFile参数指定了httpd守护q程的加锁文Ӟ一般不需要设|这个参敎ͼ Apache服务器将自动在ServerRoot下面的\径中q行操作。但如果ServerRoot为NFS文gpȝQ便需要用这个参数指定本地文件系l中的\径?/p>

  PidFile /var/run/httpd.pid
  PidFile指定的文件将记录httpd守护q程的进E号Q由于httpd能自动复制其自nQ因此系l中有多个httpdq程Q但只有一个进Eؓ最初启动的q程Q它为其他进E的父进E,对这个进E发送信号将影响所有的httpdq程。PidFILE定义的文件中p录httpd父进E的q程受?/p>

  ScoreBoardFile /var/run/httpd.scoreboard
  httpd使用ScoreBoardFile来维护进E的内部数据Q因此通常不需要改变这个参敎ͼ除非理员想在一台计机上运行几个Apache服务器,q时每个Apache服务器都需要独立的讄文ghtt pd.confQƈ使用不同的ScoreBoardFile?/p>

  #ResourceConfig conf/srm.conf
  #AccessConfig conf/access.conf
  q两个参数ResourceConfig和AccessConfigQ就用于和?srm.conf ?access.conf 讄文g的老版本Apache兼容。如果没有兼容的需要,可以对应的讄文g指定?dev/nullQ这表CZ存在其他讄文gQ而仅使用 httpd.conf 一个文件来保存所有的讄选项?/p>

  Timeout 300
  Timeout定义客户E序和服务器q接的超旉隔,过q个旉间隔Q秒Q后服务器将断开与客h的连接?/p>

  KeepAlive On
  在HTTP 1.0中,一ơ连接只能作传输一ơHTTPhQ而KeepAlive参数用于支持HTTP 1.1版本的一ơ连接、多ơ传输功能,q样可以在一ơ连接中传递多个HTTPh。虽然只有较新的览器才支持q个功能Q但q是打开使用q个选项?/p>

  MaxKeepAliveRequests 100
  MaxKeepAliveRequestsZơ连接可以进行的HTTPh的最大请求次数。将
其D?支持在一ơ连接内q行无限ơ的传输h。事实上没有客户E序在一ơ连接中h太多的页面,通常达不到这个上限就完成q接了?/p>

  KeepAliveTimeout 15
  KeepAliveTimeout试一ơ连接中的多ơ请求传输之间的旉Q如果服务器
已经完成了一ơ请求,但一直没有接收到客户E序的下一ơ请求,在间隔超q了
q个参数讄的g后,服务器就断开q接?/p>

  MinSpareServers 5MaxSpareServers 10
  在用子q程处理HTTPh的Web服务器上Q由于要首先生成子进E才能处理客LhQ因此反应时间就有一点gq。但是,Apache服务器用了一个特D技术来摆脱q个问题Q这是预先生成多个IZ的子q程ȝ在系l中Q一旦有h出现Q就立即使用q些IZ的子q程q行处理Q这样就不存在生成子q程造成的gq了。在q行中随着客户h的增多,启动的子q程会随之增多,但这些服务器副本在处理完一ơHTTPh之后q不立即退出,而是停留在计机中等待下ơ请求。但是空余的子进E副本不能光增加不减,太多的空余子q程没有处理dQ也占用服务器的处理能力Q因此也要限制空余副本的数量Q其保持一个合适的数量Q得既能及时回应客戯求,又能减少不必要的q程数量?br />  因此可以用参数MinSpareServers来设|最的IZ子进E数量, 以及
使用参数MaxSpareServers 来限制最多的I闲子进E数量,多余的服务器q程?br />本就会退出。根据服务器的实际情冉|q行讄Q如果服务器性能较高Qƈ且也
被频J访问,应该增大这两个参数的设|。对于高负蝲的专业网站,q两个?br />应该大致相同Qƈ且等同于pȝ支持的最多服务器副本数量Q也减少不必要的?br />本退出?/p>

  StartServers 5
  StartServers参数是用来讄httpd启动时启动的子进E副本数量,q个参数与上面定义的MinSpareServers?MaxSpareServers参数相关Q都是用于启动空闲子q程以提高服务器的反应速度的。这个参数应该设|ؓ前两个g间的一个数|于 MinSpareServers和大于MaxS pareServers都没有意义?/p>

  MaxClients 150
  在另一斚wQ服务器的能力毕竟是有限的,不可能同时处理无限多的连接请
求,因此参数Maxclient sq于规定服务器支持的最多ƈ发访问的客户敎ͼ如果q个D|得q大Q系l在J忙时不得不在过多的q程之间q行切换来ؓ太多的客戯行服务,q样Ҏ个客L反应׃减慢Qƈ降低了整体的效率。如果这个D|的较小Q那么系l繁忙时׃拒绝一些客Lq接h。当服务器性能较高Ӟ可以适当增加q个值的讄。对于专业网站,应该使用提高服务器效率的{略Q因此这个参C能超q硬件本w的限制Q如果频J出现拒l访问现象,p明需要升U服务器g了。对于非专业|站Q不太在意对客户览器的反应速度Q或者认为反应速度较慢也比拒绝q接好,׃可以略微过g条g来设|这个参数?br />  q个参数限制了MinSpareServers和MaxSpareServers的设|,它们不应该大
于这个参数的讄?/p>

  MaxRequestsPerChild 30
  使用子进E的方式提供服务的Web服务Q常用的方式是一个子q程Zơ连接服务,q样造成的问题就是每ơ连接都需要生成、退出子q程的系l操作,使得q些额外的处理过E占据了计算机的大量处理能力。因此最好的方式是一个子q程可以为多ơ连接请求服务,q样׃需要这些生成、退E的pȝ消耗, Apache采用了q样的方式,一ơ连接结束后Q子q程q不退出,而是停留在系l中{待下一ơ服务请求,q样极大的提高了性能?br />  但由于在处理q程中子q程要不断的甌和释攑ֆ存,ơ数多了׃造成一
些内存垃圾,׃影响pȝ的稳定性,q且影响pȝ资源的有效利用。因此在一个副本处理过一定次数的h之后Q就可以让这个子q程副本退出,再从原始?br />httpdq程中重新复制一个干净的副本,q样p提高pȝ的稳定性。这P?br />个子q程处理服务hơ数由MaxRe questPerChild定义?~省的设|gؓ30Q?br />q个值对于具备高E_性特点的Linuxpȝ来讲是过于保守的讄Q可以设|ؓ1000甚至更高Q设|ؓ0支持每个副本q行无限ơ的服务处理?/p>

  #Listen 3000
  #Listen 12.34.56.78:80
  #BindAddress *
  Listen参数可以指定服务器除了监视标准的80端口之外Q还监视其他端口?br />HTTPh。由于FreeBSDpȝ可以同时拥有多个IP地址Q因此也可以指定服务器只听取Ҏ个BindAddress< /B>的IP地址的HTTPh。如果没有配|这一,则服务器会回应对所有IP的请求?br />  即使用了BindAddress参数Q得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数Q仍然可以让HTTP守护q程回应对其他IP地址的请求。此时Listen参数的用法与上面的第二个例子相同。这U比较复杂的用法主要用于讄虚拟L。此后可以用 VirtualHost参数定义对不同IP的虚拟主机,然而这U用法是较早的HTTP 1.0标准中设|虚拟主机的ҎQ每针对一个虚拟主机就需要一个IP地址Q实际上用处q不大。在HTTP 1.1中,增加了对单IP地址多域名的虚拟L的支持,使得虚拟L的设|具备更大的意义?/p>

LoadModule mime_magic_module libexec/apache/mod_mime_magic.so
LoadModule info_module libexec/apache/mod_info.so
LoadModule speling_module libexec/apache/mod_speling.so
LoadModule proxy_module libexec/apache/libproxy.so
LoadModule rewrite_module libexec/apache/mod_rewrite.so
LoadModule anon_auth_module libexec/apache/mod_auth_anon.so
LoadModule db_auth_module libexec/apache/mod_auth_db.so
LoadModule digest_module libexec/apache/mod_digest.so
LoadModule cern_meta_module libexec/apache/mod_cern_meta.so
LoadModule expires_module libexec/apache/mod_expires.so
LoadModule headers_module libexec/apache/mod_headers.so
LoadModule usertrack_module libexec/apache/mod_usertrack.so
LoadModule unique_id_module libexec/apache/mod_unique_id.so

ClearModuleList
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_proxy.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
AddModule mod_digest.c
AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c

Apache服务器的一个重要特性就是其模块化的l构Q这不但表现为其能在~?br />译时能通过新的模块加入新的功能Q还表现为其模块可以动态加载入http服务E?br />序中Q而不必蝲入不需要的模块。用Apache的动态加载模块只需要设|好Load Module和AddModule参数可以了Q这U特性就是Apache?DSOQDynamic Shared ObjectQ特性,然而要惛_分用DSOҎ仍然不是一个简单的事情Q不适当的改动这里的讄可能造成服务器不能正常启动。因此如果不是要增加或减服务器提供的功能,׃要改动这里的讄?/p>

  上面q些列表显CZLinux下的~省Apache服务器支持的模块Q事实上?br />多模块是没有必要的,不必要模块不会被载入内存。模块可以静态连接到Apache 服务器内部,也可以这样动态加载,Apache的特性都~译成动态可加蝲模块是该Port的做法,而不是Apache的缺省做法,q样׃牺牲很小的性能的同Ӟ带来极大的灵zL?/p>

  因而动态可加蝲的能力还是对性能有轻微的影响Q因此可以重新编译ApacheQ将自己所需要的功能~译qApache 服务器内部,可以让系l显得更为干净Q效率也有轻微的提高。通常仅仅Zq一个目的就重新~译Apache是没有必要的Q如果需要增加其他特性而重新编?ApacheQ不妨在增加其他模块的同时将所有的模块都静态连接入Apache 服务器。有的用者更喜欢动态加载模块,那么也不妨全部都使用动态加载模块?/p>

  q些模块都被攄?usr/local/apache/libexec/目录下,每个模块对应Apache服务器的一个特性。详l解释每个模块的功能需要相当多的篇q,其中比较重要的特性将在后面相应的地方中进行解释,而具体每个模块的功能及用法就需要查看Apache的文档?/p>

  #ExtendedStatus On
  Apache服务器可以通过Ҏ的HTTPhQ来报告自n的运行状态,打开q个
ExtendedStatus 参数可以让服务器报告更全面的q行状态信息?/p>


L务器讄

  Apache服务器需要各U设|,以定义自׃用各U参C提供Web服务。对于用虚拟主机的情况Q除了在虚拟L的定义项中覆盖的讄之外Q有的设|必重新定义)Q这里的讄也是虚拟L的缺省设|?/p>

  Port 80
  Port定义了Standalone模式下httpd守护q程使用的端口,标准端口?0。这个选项只对于以独立方式启动的服务器才有效,对于以inetd方式启动的服务器则在inetd.conf中定义用哪个端口?/p>

  在Unix下?0端口需要root权限Q一些管理员Z安全的原因,认ؓ httpd 服务器不可能没有安全漏洞Q因而更愿意使用普通用L权限来启动服务器Q这样就不能使用80端口及其他小?024的端口,而必M用大?1024的端口来启动httpdQ一般情况下8000?080也是常用的端口。而Apache httpd服务器本w可以在以root权限打开80端口后再改变为普通用戯n份进行运行,q样减了危险性,因而就不需要考虑q个安全问题。但是如果普通用户也惛_装配|自qWWW服务器,那么׃得不使用大于1024的端口?/p>

  User nobody
  Group nogroup
  User和Group配置是Apache的安全保证,Apache在打开端口之后Q就其本n讄两个选项讄的用户和l权限进行运行,q样降低了服务器的危险性。这个选项也只用于 Standalone模式Qinetd模式在inetd.conf中指定运行Apache的用戗由于服务器必须执行改变w䆾的setuid()操作Q因此初始进E应该具备root权限Q如果是使用非root用户来启动AapcheQ这个配|就不会发挥作用?br />  ~省讄为nobody和nogroupQ这个用户和l在pȝ中不拥有文gQ保证了服务器本w和由它启动的CGI q程没有权限更改文gpȝ。在某些情况下,例如Zq行CGI与Unix交互Q也需要让服务器来讉K服务器上的文Ӟ如果仍然使用nobody?nogroupQ那么系l中会出现属于nobody的文Ӟq对于系l安全是不利的,因ؓ其他E序也会以nobody和nogroup的权限执行某些操作,有可能讉Kq些nobody拥有的文Ӟ造成安全问题。一般情况下要ؓWeb服务讑֮一个特定的用户和组Q同时在q里更改用户和组讄?/p>

  ServerAdmin you@your.address
  配置文g中应该改变的也许只有ServerAdminQ这一用于配|WWW服务器的理员的email地址Q这在HTTP服务出现错误的条件下q回l浏览器Q以便让Web使用者和理员联p,报告错误。习惯上使用服务器上的webmaster作ؓWWW服务器的理员,通过邮g服务器的别名机制Q将发送到webmaster 的电子邮件发送给真正的Web理员?/p>

  #ServerName new.host.name
  ~省情况下,q不需要指定这个ServerName参数Q服务器自动通过名字?br />析过E来获得自己的名字,但如果服务器的名字解析有问题Q通常为反向解析不
正确Q,或者没有正式的DNS名字Q也可以在这里指定IP地址。当ServerName?br />|不正确的时候,服务器不能正常启动?br />  通常一个Web服务器可以具有多个名字,客户览器可以用所有这些名字或IP地址来访问这台服务器Q但在没有定义虚拟主机的情况下,服务器L以自q正式名字回应览器。ServerName定义了Web服务器自己承认的正式名字Q例如一台服务器名字Q在DNS中定义了AcdQؓ exmaple.org.cnQ同时ؓ了方便记忆还定义了一个别名(CNAME记录Qؓwww.exmaple.org.cnQ那么Apache自动解析得到的名字就为example.org.cnQ这样不客h览器使用哪个名字发送请求,服务器L告诉客户E序自己?example.org.cn。虽然这一般ƈ不会造成什么问题,但是考虑到某一天服务器可能q移到其他计机上,而只想通过更改DNS中的www别名配置完成迁UMQ务,所以不惌客户在其书签中?Linux 记录下这个服务器的地址Q就必须使用ServerName来重新指定服务器的正式名字?/p>

  DocumentRoot "/www/"
  DocumentRoot定义q个服务器对外发布的文本文档存攄路径Q客L序请求的UR Lp映射个目录下的网|件。这个目录下的子目录Q以及?br />W号q接指出的文件和目录都能被浏览器讉KQ只是要在URL上用同L相对目录名?/p>

  注意Q符可接虽焉辑上位于根文档目录之下Q但实际上可以位于计机
上的L目录中,因此可以使客L序能讉K那些Ҏ档目录之外的目录Q这?br />增加了灵zL的同时但减了安全性。Apache在目录的讉K控制中提供了 FollowSymLinks选项来打开或关闭支持符可接的Ҏ?/p>

Options FollowSymLinks
AllowOverride None
  Apache服务器可以针对目录进行文档的讉K控制Q然而访问控制可以通过?br />U方式来实现Q一个是在设|文?httpd.confQ或access.confQ中针对每个?br />录进行设|,另一个方法是在每个目录下讄讉K控制文gQ通常讉K控制文g
名字?htaccess。虽然用这两个方式都能用于控制览器的讉KQ然而用配|文件的Ҏ要求每次改动后重新启动httpd守护q程Q比较不灉|Q因此主要用于配|服务器pȝ的整体安全控制策略,而用每个目录下?htaccess文g讄具体目录的访问控制更为灵zLѝ?br />  Directory语句是用来定义目录的访问限制的Q这里可以看出它的标准语法,Z个目录定义访问限制。上例的q个讄是针对系l的根目录进行的Q设|了允许W号q接的选项FollowSymLinks Q以及用AllowOverride None表示不允许这个目录下的访问控制文件来改变q里q行的配|,q也意味着不用查看q个目录下的相应讉K控制文g?br />  ׃Apache对一个目录的讉K控制讄是能够被下一U目录承的Q因此对
根目录的讄媄响到它的下目录。注意由于AllowOverride None的设|,?br />得Apache服务器不需要查看根目录下的讉K控制文gQ也不需要查看以下各U目
录下的访问控制文Ӟ直至httpd.confQ或access.conf Q中为某个目录指定了
允许AlloworrideQ即允许查看讉K控制文g。由于Apache对目录访问控制是采用的承方式,如果从根目录允许查看访问控制文Ӟ那么 Apache必MU一U的查看讉K控制文gQ对pȝ性能会造成影响。而缺省关闭了根目录的q个Ҏ,׃得Apache从httpd.conf中具体指定的目录向下搜寻Q减了搜寻的敎ͼ增加了系l性能。因此对于系l根目录讄AllowOverride None不但对于pȝ安全有帮助,也有益于pȝ性能?/p>

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
  q里定义的是pȝ对外发布文档的目录的讉K讄Q设|不同的 AllowOverride选项Q以定义配置文g中的目录讄和用L录下的安全控制文件的关系Q而Options选项用于定义该目录的Ҏ?br />  配置文g和每个目录下的访问控制文仉可以讄讉K限制Q设|文件是?br />理员设|的Q而每个目录下的访问控制文件是q录的属主讄的,因此理
员可以规定目录的属主是否能覆盖系l在讄文g中的讄Q这需要?啊AllowOverride参数q行讄Q通常可以讄的gؓQ?br />AllowOverride的设|?Ҏ个目录访问控制文件作用的影响
All ~省|使访问控制文件可以覆盖系l配|?br />None 服务器忽略访问控制文件的讄
Options 允许讉K控制文g中可以用Options参数定义目录的选项
FileInfo 允许讉K控制文g中可以用AddType{参数设|?br />AuthConfig 允许讉K控制文g使用AuthNameQAuthType{针Ҏ个用L认证机制Q这使目录属主能用口令和用户名来保护目录 Limit 允许对访问目录的客户机的IP地址和名字进行限?br />  每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设|,以下为常用的Ҏ选项Q?/p>

Options讄 服务器特性设|?br />All 所有的目录Ҏ都有效Q这是缺省状?br />None 所有的目录Ҏ都无效
FollowSymLinks 允许使用W号q接Q这ɋ览器有可能讉K文档根目?QDocumentRootQ之外的文档 SymLinksIfOwnerMatch 只有W号q接的目的与W号q接本n为同一用户所拥有Ӟ才允许访问,q个讄增加一些安全?br />ExecCGI 允许q个目录下可以执行CGIE序 Indexes 允许览器可以生成这个目录下所有文件的索引Q得在q个目录下没有index.htmlQ或其他索引文gQ时Q能向浏览器发送这个目录下的文件列?br /> 此外Q上例中q用了Order、Allow、Deny{参敎ͼq是Limit语句中用来根据浏览器的域名和 IP地址来控制访问的一U方式。其中Order定义处理Allow和Deny的顺序,而Allow、Deny则针对名字或IPq行讉K控制讄Q上例?allowfrom allQ表C允许所有的客户问这个目录,而不q行M限制?/p>

  UserDir public_html
  当在一台Linux上运行Apache服务器时Q这台计机上的所有用户都可以有自q|页路径QŞ?http://example.org.cn/~userQ用L符?..褂肈ISABLED?UserDir的参数即可?/p>

#
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#
# Order allow,deny
# Allow from all
#
#
# Order deny,allow
# Deny from all
#
#

  q里可以看到Directory的另一个用法,卛_以通过单的模式匚wҎQ针对分布在不同目录下的子目录定义访问控制权限。这栯|就需要Apache服务器对每个路径q行额外的处理,因此׃降低服务器的性能Q所以缺省情况ƈ没有打开q种讉K限制?/p>

  q里可以看到另外一个语句LimitQLimit语句是用来针对具体的请求方法来讑֮讉K控制的,其中可以使用GET、POST{各U服务器支持的请求方法做Lim
it的参敎ͼ来设定对不同hҎ的访问限制。一般可以打开对GET、POST?HEAD三种hҎQ而屏蔽其他的hҎQ以增加安全性。Limit语句中,可以用Order 、Allow、DenyQAllow和Deny中可以用匹配的Ҏ针对域名和IPq行限制Q只是对于域名是从后向前匚wQ对于IP地址则从前向后匹配?/p>

  DirectoryIndex index.html
  很多情况下,URL中ƈ没有指定文档的名字,而只是给Z一个目录名。那么Apache服务器就自动q回q个目录下由DirectoryIndex定义的文Ӟ当然可以指定多个文g名字Q系l会q个目录下顺序搜索。当所有由DirectoryIndex指定的文仉不存在时QApache服务器可以根据系l设|,生成q个目录下的所有文件列表,提供用户选择。此时该目录的访问控刉项中的Indexes选项QOptions Indexes Q必L开Q以使得服务器能够生成目录列表,否则Apache拒l访问?/p>

  AccessFileName .htaccess
  AccessFileName定义每个目录下的讉K控制文g的文件名Q缺省ؓ.htaccessQ可以通过更改q个文gQ来改变不同目录的访问控刉制?/p>

Order allow,deny
Deny from all
  除了可以针对目录q行讉K控制之外Q还可以Ҏ文g来设|访问控Ӟq?br />是File语句的Q务。用File 语句Q不文件处于哪个目录,只要名字匚wQ就必须接受相应的访问控制。这个语句对于系l安全比较重要,例如上例屏蔽所有的使用者不能访?htaccess文gQ这样就避免.htaccess中的关键安全信息不至于被客户获取?/p>

  #CacheNegotiatedDocs
  ~省情况下如果代理服务器和Apache服务器协商是否缓存其|页QApachel?br />予否定的回答Q不希望自己的网被代理服务器缓存。然而这样就不能有效的利用代理服务器的优势,因此可以讄CacheNegotiatieDocs 选项Q?使得代理服务器可以对|页q行~存。然而即使不讄q个选项Q有的代理服务器Q或通过调整讄Q也能对|页q行~存?/p>

  UseCanonicalName On
  打开q个UseCanonicalName是Web服务器的标准做法Q因为客户发送的大部分请求都是对本服务器的引用,q样服务器就能?ServerName和Port选项的设|内Ҏ建完整的URLQƈ回应客户Qɋ览器能得到规范的URL。如果将q个参数讄为OffQ那?Apache用从客户h中获得服务器的名字和端口|支持HTTP 1.1的客Lh中将会有q些信息Q,重新构徏URL?/p>

  TypesConfig /usr/local/apache/etc/mime.types
  TypeConfig用于讄保存有不同的MIMEcd数据的文件名Q在Linux下缺省设|ؓ/usr/local/apache/etc/mime.types?/p>

  DefaultType text/plain
  如果Web服务器不能决定一个文档的~省cdQ这通常表示文档使用了非标准的后~Q那么服务器׃?DefaultType定义的MIMEcd文档发送给客户览器。这里的讄为text/plainQ这栯|的问题是,如果服务器不能判断出文档?MIMEQ那么大部分情况下这个文档ؓ一个二q制文档Q但使用 text/plain格式发送回去,览器将在内部打开它而不会提CZ存。因此徏议将q个讄更改?br />application/octet-streamQ这h览器提C用戯行保存?/p>

MIMEMagicFile /usr/local/apache/etc/magic
  除了从文件的后缀出发来判断文件的MIMEcd之外QApacheq可以进一步分
析文件的一些特征,来判断文件的真实MIMEcd。这个功能是由mod_mime_magic 模块实现的,它需要一个记录各UMIMEcd特征的文Ӟ以进行分析判断。上面的讄是一个条件语句,如果载入了这个模块,必L定相应的标志文gmagic的位|?/p>


通常q接Ӟ服务器仅仅可以得到客h的IP地址Q如果要惌得客h?br />L名,以进行日志记录和提供l?CGIE序使用Q就需要用这?HostnameLookups 选项Q将其设|ؓOn打开DNS反查功能。但是这服务器对每次客户h都进行DNS查询Q增加了pȝ开销Q得反应变慢,因此~省讄Z用Off关闭此选项。关闭选项之后Q服务器׃会获得客h的主机名Q而只能用IP地址来记录客戗?/p>

ErrorLog /var/log/httpd-error.log
LogLevel warn
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent} "" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#CustomLog /var/log/httpd-access.log common
#CustomLog /var/log/httpd-referer.log referer
#CustomLog /var/log/httpd-agent.log agent
CustomLog /var/log/httpd-access.log combined

  q里定义了系l日志的形式Q对于服务器错误记录Q?由ErrorLog?LogLevel 来定义不同的错误日志文g及其记录内容?br />  对于pȝ的访问日志,~省使用CustomLog参数定义日志的位|,~省使用 combined 参数指定所有的讉K日志攑֜一个文件中Q然而也可以不同种cȝ讉K日志攑֜不同的日志记录文件中Q这是通过?CustomLog中指定不同的记录cd来完成的。common表示普通的对单面h讉K记录Qreferer表示每个面的引用记录,可以看出一个页面中包含的请求数Qagent表示对客h的类型记录,昄可以现有的combined 定义的设|行注释掉,q用common、referer和agent作ؓCustomLog的参敎ͼ来ؓ不同U类的日志分别指定日志记录文件?br />  昄QLogFormat是用于定义不同类型的日志q行记录时用的格式Q?q里
使用了以%开头的宏定义,以记录不同的内容?br />  如果q些参数指定的文件用的是相对\径,那么是相对于ServerRoot?br />路径?/p>

  ServerSignature On
  一些情况下Q例如当客户h的网ƈ不存在时Q服务器生错误文档,
~省情况下由于打开?ServerSignature选项Q错误文档的最后一行将包含服务器的名字、Apache的版本等信息。有的管理员更們֐于不对外昄q些信息Q就
可以这个参数设|ؓOffQ或者设|ؓEmailQ最后一行将替换为对 ServerAdmin 的Email提示?/p>

Alias /icons/ "/www/icons/"
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all

  Alias参数用于URL与服务器文gpȝ中的真实位置q行直接映射Q一般的
文档在DocumentRoot 中进行查询,然而用Alias定义的\径将直接映射到相
应目录下Q而不再到DocumentRoot 下面q行查询。因此Alias可以用来映射一?br />公用文g的\径,例如保存了各U常用图标的icons路径。这样得除了用符可接之外,文档根目录(DocumentRootQ外的目录也可以通过使用了Alias映射Q提供给览器访问?br />  定义好映的路径之后Q应该需要用Directory语句讄讉K限制?/p>

ScriptAlias /cgi-bin/ "/www/cgi-bin/"
AllowOverride None
Options None
Order allow,deny
Allow from all
  ScriptAlias也是用于URL路径的映,但与Alias的不同在于,ScriptAlias 是用于映CGIE序的\径,q个路径下的文g都被定义为CGIE序Q通过执行它们来获得结果,而非由服务器直接q回其内宏V缺省情况下CGIE序使用 cgi-bin目录作ؓ虚拟路径?/p>

  # Redirect old-URI new-URL
  Redirect参数是用来重写URL的,当浏览器讉K服务器上的一个已l不存在的资源的时候,服务器返回给览器新的URLQ告诉浏览器从该URL 中获取资源。这主要用于原来存在于服务器上的文档Q改变了位置之后Q而又希望能用老URL能访问到Q以保持与以前的URL兼容?/p>

IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName README
HeaderName HEADER
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

当一个HTTPh的URLZ个目录的时候,服务器返回这个目录中的烦引文件。但如果一个目录中不存在缺省的索引文gQƈ且该服务器又许可昄目录文g列表的时候,׃昄个目录中的文件列表,Z使得q个文g列表能具有可理解性,而不仅仅是一个简单的列表Q就需要前面的q些讄参数?br />  如果使用了IndexOptions FancyIndexing选项Q可以让服务器生的目录?br />表中针对各种不同cd的文档引用各U图标。而哪U文件用哪U图标,则?br />下面?AddIconByEncoding、AddIconByType以及AddIcon来定义,分别依据MIME 的编码、类型以及文件的后缀来判断用何U图标。如果不能确定文档用的图标Q就使用 DefaultIcon定义的缺省图标?br />  同样Q用AddDescription可以Z同类型的文档加入不同的描q。ƈ且,
服务器还在目录下Q查询用ReadmeName和HeaderName定义的文Ӟ自动加上 .
html后缀Q如果没有发玎ͼ再?txt后缀q行搜烦Q,如果发现了这些文Ӟ
在文g列表之前首先昄q些文g的内容,以得普通目录列表具备更大的?br />理解性?br />  IndexIgnore让服务器在列出文件列表时忽略相应的文Ӟ q里使用模式?br />|的方式定义文g名?/p>

AddEncoding x-compress Z
AddEncoding x-gzip gz
  AddEncoding用于告诉一些用压~的MIMEcdQ这样可以让览器进行解压羃操作?/p>

AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
LanguagePriority en fr de

  一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以?br />备file1.html.en、file1.html.fr {不同的版本Q每个语a后缀必须使用 AddLanguageq行定义。这h务器可以针对不同国家的客P通过与浏览器q行协商Q发送不同的语言版本。而LanguagePriority 定义不同语言的优先Q以便在览器没有特D要求时Q按照顺序用不同的语言版本回应对file1.html 的请求?br />q个国际化的能力实际的应用ƈ不多?/p>

#AddType application/x-httpd-php .phtml
#AddType application/x-httpd-php-source .phps
 AddType参数可以为特定后~的文件指定MIMEcdQ这里的讄覆?mime.types中的讄?/p>

  #AddHandler cgi-script .cgi
  AddHandler是用于指定非静态的处理cdQ用于定义文档ؓ一个非静态的?br />档类型,需要进行处理,再向览器返回处理结果。例如上面注释中的设|是以.cgil尾的文件设|ؓcgi-scriptcdQ那么服务器启动这?CGIE序以进行处理。如果需要在前面AliasScript定义的\径之外执行CGIE序Q就需要用这个参数进行设|,此后?cgil尾的文件将被当作CGIE序执行?/p>

  在配|文件、这个目录中?htaccess以及其上U目录的.htaccess中必d许执行CGIE序Q这需要通过Options ExecCGI参数讑֮?/p>

#AddType text/html .shtml
#AddHandler server-parsed .shtml
  另外一U动态进行处理的cd为server-parsedQ由服务器自w预先分析网内的标讎ͼ标记更改ؓ正确的HTML标识。由于server- parsed需要对text/html cd的文档进行处理,因此首先定义了对应的.shtml为text/htmlcd?br />  然而要支持SSIQ还要首先要在配|文Ӟ?htaccessQ中使用Options Includes允许该目录下的文档可以ؓSSIcdQ或使用Options IncludesNOExec让执行普通的SSI标志Q但不执行其中引用的外部E序?/p>

  另一U指定server-parsedcd的方式ؓ使用XBitBack讄选项Q如果将 XBitHack讄为OnQ服务器检查所有text/htmlcd的文档(包括.html后缀的文档)Q如果发现文件属性具备执行位 “x"Q则服务器就认ؓ它是服务器分析文档,需要服务器q行处理。推荐用AddHandlerq行讄Q而将XBitBack 讄为OffQ因Z用XBitBack对所有的HTML文档都执行额外的查,降低了效率?/p>

#AddHandler send-as-is asis
#AddHandler imap-file map
#AddHandler type-map var
上面被注释的AddHandler用于支持Apache服务器的asis、map和var处理能力
?/p>

# Action media/type /cgi-script/location
# Action handler-name /cgi-script/location
 因ؓApache内部提供的处理功能有限,因此可以使用Action为服务器定义?br />部程序作为可处理的动态文档类型,q些外部E序与标准CGIE序相同Q都是对输入的数据处理之后,再输Z同MIMEcd的结果。例如要定义一个对Ҏ后缀wri都先执行wri2txtq行处理操作Q再q回l果的操作,可以使用Q?/p>

Action windows-writer /bin/wri2txt
AddHandler windows-writer wri
 更进一步,可以直接使用Action定义Ҏ个MIMEcd预先q行处理操作Q这
需要例子中W一U格式的Action 参数讄方式。这栯|方式就不再需要额外的AddHandler用来处理操作与文g后缀联系hQ而是使用Action直接处理MIMEcd的文件。但如果文档后缀没有正式的MIMEcdQ还需要先定义一个MIMEcd?/p>

#MetaDir .web
#MetaSuffix .meta
 Meta信息是在文档发送给客户之前Q预先发送给客户览器一些数据,因此
览器可以通过HEADh来访问这些Meta信息而不必真正通过GET来返回全部文档数据。服务器通常发送给览器的是一些标准的HTTP头信息,如果要想增加额外的信息,需要用MetaDir来定义Meta数据存放的目录, 而MetaS uffix用于指定包含Meta数据的文件后~?/p>

#ErrorDocument 500 "The server made a boo boo.
#ErrorDocument 404 /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
#ErrorDocument 402
http://some.other_server.com/subscription_info.html
  如果客户h的网不存在Q或者没有访问权限等情况发生Ӟ服务器将?br />生一个错误代码,同时也将回应客户览器一个标识错误的|页?br />ErrorDocumentq于设|当出现哪个错误时应该回应客h览器那些内容QErrorDocument的第一个参Cؓ错误的序PW二个参Cؓ回应的数据,可以为简单的文本Q本地网,本地CGIE序Q以及远E主Z的网c?/p>

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
 BrowserMatch命o为特定的客户E序Q设|特D的参数Q以保证对老版本浏
览器的兼Ҏ,q支持新览器的新特性?/p>

#
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#
#
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#
#
# Deny from all
# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#

  用于讄讉K控制的设|主要是针对目录和文件进行设|的Q然而也可以?br />对不同的URLq行讉K控制的设|,q样׃必担心ScriptAlias、Alias是否\径设|到了受控制的目录之外了。针对URLq行控制的语句ؓ Location语句Q这样不但能Ҏ务器上的文g、CGI提供保护Q此外,它还能保护不能找到对应文Ӟ而是由服务器本n提供的特D功能URL?http://servername/server-status用于报告?..器的状态,http: //servername/server-info用于报告Apache 服务器的l计信息。与此相关的讄q有ExtendedStatus参数Q可以让服务器输出更详细的的报告?/p>

#
#ProxyRequests On
#
#
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#
#ProxyVia On
#CacheRoot "/www/proxy"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com

#

  Apache服务器本w就具备代理的功能,然而这要求加蝲入mod_proxy模块。这能用IfModule语句q行判断Q如果存?mod_proxy模块Q就使用ProxyRequests打开代理支持。此后的Directory用于讄对Proxy功能的访问权限设|,以及用于讄~冲的各个参数设|?/p>

虚拟L
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
#
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log common
#

#

  ~省讄文g中的q些内容是用于设|命名基的虚拟主机服务器时用?br />其中NameVirtualHost 来指定虚拟主Z用的IP地址Q这个IP地址对应多?DNS名字Q如果Apache使用了Listen 参数控制了多个端口,那么可以在q里加上端口号以q一步进行区分对不同端口的不同连接请求。此后,使用 VirtualHost 语句Q用NameVirtualHost指定的IP地址作参敎ͼҎ个名字都定义对应的虚拟主|?br />  虚拟L是在一台Web服务器上Q可以ؓ多个单独域名提供Web服务Qƈ且每个域名都完全独立Q包括具有完全独立的文档目录l构及设|,q样域名之间完全独立Q不但用每个域名访问到的内容完全独立,q且使用另一个域名无法访
问其他域名提供的|页内容?br />  虚拟L的概念对于ISP来讲非常有用Q因然一个组l可以将自己的网|在具备其他域名的服务器上的下U往址上,但用独立的域名和根|址更ؓ正式Q易Z人接受。传l上Q必自p立一台服务器才能辑ֈ单独域名的目的,然而这需要维护一个单独的服务器,很多单位缺乏够的l护能力Q更为合适的方式是租用别人维护的服务器。ISP也没有必要ؓ一个机构提供一个单独的服务器,完全可以使用虚拟L能力Q服务器ؓ多个域名提供Web服务Q而且不同的服务互不干扎ͼ对外pCؓ多个不同的服务器?br />  有两U设定虚拟主机的方式Q一U是ZHTTP 1.0标准Q需要一个具备多IP
地址的服务器Q再配置DNS 服务器,l每个IP地址以不同的域名Q最后才能配|Apache的配|文Ӟ使服务器对不同域名返回不同的Web文档。由于这需要用额外的IP地址Q对每个要提供服务的域名都要使用单独的IP地址Q因此这U方式实现v来问题较多?br />  可以在一个网l界面上l定多个IP地址QLinux下需要用ifconfig?alias参数来进行这个配|,但此时会影响|络性能?br />  HTTP 1.1标准在协议中规定了对览器和服务器通信Ӟ服务器能够跟t浏
览器h的是哪个L名字。因此可以利用这个新Ҏ,使用更轻杄方式讑֮
虚拟L。这U方式不需要额外的IP地址Q但需要新版本的浏览器支持。这U方
式已l成为徏立虚拟主机的标准方式?br />  要徏立非IP基础的虚拟主机,多个域名是不可少的配|,因ؓ每个域名对
应一个要服务的虚拟主机。因此需要更改DNS服务器的配置Qؓ服务器增加多个C NAME选项Q如Q?/p>

linux IN A 192.168.1.64
vhost1 IN CNAME linux
vhost2 IN CNAME linux

 基本的设|选项都是ZlinuxL讑֮的,如果要ؓvhost1和vhost2讑֮
虚拟LQ就要用VirtualHost语句定义不同的选项Q在语句中可以用配|文件前面中的大部分选项Q而可以重新定义几乎所有的针对服务器的讄?/p>

NameVirtualHost 192.168.1.64

DocumentRoot /www/data
ServerName linux.example.org.cn

DocumentRoot /vhost1
ServerName vhost1.example.org.cn

DocumentRoot /vhost2
ServerName vhost2.example.org.cn

  q里需要注意的是,VirtualHost的参数地址一定要和NameVirtualHost定义
的地址怸_必须保证所有的gg_Apache服务器才承认q些定义是ؓq个IP地址定义的虚拟主机?br />  此外Q定义过NameVirtualHost之后Q那么对q个IP地址的访问都被区分不同的虚拟Lq行处理Q而对其他IP地址的访问,例如127.0.0.1Q才应用前面定义的缺省选项?/p>

 



]]>
优秀的LOGO大全http://www.tkk7.com/qclass/archive/2007/01/25/95931.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Thu, 25 Jan 2007 07:03:00 GMThttp://www.tkk7.com/qclass/archive/2007/01/25/95931.htmlhttp://www.tkk7.com/qclass/comments/95931.htmlhttp://www.tkk7.com/qclass/archive/2007/01/25/95931.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/95931.htmlhttp://www.tkk7.com/qclass/services/trackbacks/95931.htmlhttp://pic1.blueidea.com/logo/logo.htm

]]>
行业|站设计心得http://www.tkk7.com/qclass/archive/2007/01/25/95930.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Thu, 25 Jan 2007 06:49:00 GMThttp://www.tkk7.com/qclass/archive/2007/01/25/95930.htmlhttp://www.tkk7.com/qclass/comments/95930.htmlhttp://www.tkk7.com/qclass/archive/2007/01/25/95930.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/95930.htmlhttp://www.tkk7.com/qclass/services/trackbacks/95930.html
一、网站风?创意
  风格(style)是抽象的。是指站点的整体形象l浏览者的l合感受。整体Ş象包括站点的版面布局Q色彩,字体Q浏览方式等…。如Q我们觉得_斯尼是生动活泼的而IBM则是专业严肃的。每一个网站都会给Z留下的不同感受。这里我们需要做到的是根据网站的定位做出|站Ҏ的风根{除此我们还需要在风格同一上需要把握一下,其实q个风格的统一和传l的印刷出版物没什么区别。你|页上所有的囑փ、文字,包括像背景颜艌Ӏ区分线、字体、标题、注脚什么的Q都要统一风格Q诏I全站。这样子用户看v来舒服、顺畅,会对你的|站留下一个“很专业”的印象。而企业网站设计师往往q乏这一点,没有全局意思?br />
  创意Q所谓创意就是不拘一|某些设计师在做创意的时候大费周章,做出来确实不可否认很有创意、很别致Q但往往对于行业|站的客户ؓ什么不能接受呢Q此时不要太责怪客L不识货,应该反思,抓住客户的需求。其实做行业|站不需要很多大的创意,也不要浪费过多的旉去追求如何个性、如何好看,我们只需要一点小的创意贯穿全站Q也怼使网站更生动更具有吸引力、更有思想Q比如中国现车交易网(http://www.chinaxcjy.com/)是一个很好的案例Q它把R的外形融入到|站中,使它脱颖而出?br />
二、网站LOGO
  Logo ֐思义是站点的标志图案,logo最重要的就是用囑Ş化的方式传递网站的定位和经营理c同时便于h们识别。网站logo的设计过E中一般有以下三种思\Q?.直接以网站网址作ؓlogo?.Ҏ|站提供的?服务特点展开logo设计?.以传递网站运营商的经营理念ؓ特色。如Q全球五金网 logo(www.Wjw.cn)

三、视觉流E?br />  Z在阅LU信息时Q视觉L一U自然的动习惯Q先看什么,后看什么,再看什么。在心理学的研究表明Q一般的览习惯是从上到下、从左到叻I在一个^面上Q上松下E压抑。同Pq面的左村֏E뀂所以^面的视觉影响力上方强于下方,左侧Z右侧。这样^面的上部和中上部被称为“最佌域”,也就是最优选的地方。在|页设计中一些突出或推荐的信息通常都放在这个位|。当然这U视觉流E只是一U感觉ƈ非一U固定的公式Q只要符合h们的心理序和逻辑序Q就可以更ؓ灉|地运用,在网设计中Q灵z而合理地q用直接影响C达信息的准确与有效性?br />
四、网|架与布局
 |页布局大致可分为“国”字型、拐角型、“T”字型、“L”字型、综合框架型、Flash 型、变化型Q在q里׃做一一了。其实在我们在做设计的时候ƈ没有q多的去考虑什么Ş式,比如我们在一张纸看到一个圆形的东西Q很Ҏ可以联想到它像太阻I而有些h则联惛_月亮{等…这都是一UŞ式比喻,最重要的是抓住客户的需求,把握|站的定位做处合理的框架布局?br />
1Q?分L?br />|页的整体宽度可分ؓ三种讄形式Q百分比、象素、象?癑ֈ比。通常在网站徏设中以象素Ş式最为常用,行业|站也不列外。我们在设计|页的时候必定会考虑到分辨率的问题,U技发展到现在我们通常用的?024*768?00*600的分辨率Q现在网l上很多都是用到778个象素的宽度Q在800的分辨率下面往往使整个网很压抑Q有U不透气的感觉,其实q个宽度是指?00*600的分辨率上网늚最宽宽度,不代表最佌觉,不妨试试760~770的象素,不管?024q是800的分辨率下都可以辑ֈ较佳的视觉效果?br />
2Q?合理q告
在目前一些网站的q告Q弹出广告、Q动广告、大q告、bannerq告、通栏q告{等…)让h觉得很烦琐,更本׃愿意来看Q有时连你这个网站都不上了,q样一来网站受C严重的媄响、广告也没达到广告的目的。这些问题都是我们在设计|站之前需要考虑、需要规划的内容之一?br />
动q告有两U,W一U是在网两边空余的地方可以上下动的广告,W二U是满屏q到处随机移动的q告。徏议能使用W一U的情况下尽量用第一U,不可避免W二U情冉|量在数量上控制最多一个就好。如果数量过多会直接影响到用L心理、防挨到用户览信息,适得其反。首广告不宜过多适中卛_。如在注册或者某个购买步骤的面上最好不要出现过多的其他无关的内容让用户分心Q避免客hq?br />
3Q空间的合理利用
 很多的网都h一个特点,用一个字来Ş容,那就是“塞”,它将各种各样的信息如文字、图片、动ȝ不加考虑的塞到页面上Q有多少挤多,不加以规范,D览时会遇到很多的不方便Q主要就是页面主ơ不分,喧宾ZQ要不就是没有重点,没有很好的归c,整体像各大杂烩。让人难以找到需要的东西。有的则是一片空白失d^衡,也可以用个“散”字来Ş宏V?br />  q要把整个面塞满了才不觉得空Q也q让整个页面空h不觉得满Q只要合理的安排、有机的l合Qə面辑ֈqQ既使在一边的部分大面U留I,同样不会让h感到I,相反q样会给人留下广阔的思考空_lh回味又达C视觉效果。 

4Q文字编?br />  在网设计中Q字体的处理与颜艌Ӏ版式、图形化{其他设计元素的处理一样非常关键?br />
4.1文字囑Ş?br />  文字囑Ş化就是将文字用图片的形式来表玎ͼq种形式在页面的子栏目里面最为常用,因ؓ它具有突出,同时又美化了面Qə面更加人性化加强了视觉效果。是文字无法辑ֈ的。对于通用性的|站弊端是扩展性不强?br />
4.2文字
  如果个别文字作为页面的诉求重点Q则可以通过加粗、加下划Uѝ加大号字体、加指示性符受倾斜字体、改变字体颜色等手段有意识地强化文字的视觉效果,使其在页面整体中昑־Z而夺目。这些方法实际上都是q用了对比的法则。如果在更新频率低的情况下也可以使用文字囑Ş化?br />
五、网站配?br />1.用一U色彩。这里是指先选定一U色彩,然后调整透明度或者饱和度Q?说得通俗些就是将色彩变E或则加深)Q生新的色彩,用于|页。这L面看v来色彩统一Q有层次感?br />
2.用两U色彩。先选定一U色彩,然后选择它的Ҏ?在Photoshop里按ctrl+shift+I)再进行微的调整。整个页面色彩丰富但不花E?br />
3.用一个色pR简单的说就是用一个感觉的色彩Q例如E蓝,淡黄QEl;或者土黄,土灰Q土蓝。也是在同一色系里面采用不同的颜色ɾ|页增加色彩Q而又不花Q色调统一。这U配色方法在|站设计U最为常用?br />
4.灰色在网设计中又称为“万能色”,其特Ҏ可以和Q何颜色搭配,在用时把握量避免网变灰?br />
在网配色中Q尽量控制在三种色彩以内Q以避免|页花、ؕ、没有主色的昄。背景和前文的对比尽量要大,(l对不要用花U繁复的图案作背?Q以便突Z要文字内宏V也使用户在览信息的时候不会觉得篏?br />
六、常见问?br />
6.1分解大型表格
  Z加快|页的浏览速度Q尽可能避免用大型表|因ؓ览器必ȝ待整个表格的内容全部到达客户端,才能昄q个表格的内容,而文本或囑փ则是一边下载一ҎC。同时我们制作网|要尽量减表格的深度、表格复杂化Q这一点尤为重要可直接影响|页览速度、又l后面的E序d带来了不必要的麻烦?br />
6.2|站D要清?br />  “您所在位|”在大型|站中是不可~少的一部分Q其作用表明您现在所处在的位|,使用户不会不知东西南北迷失在|站中。其ơ还有读者进入目的页的点L敎ͼ不能过三次。如果三ơ以上还找不到用h要的信息Qh家可没有耐心陪你玩了Q?br />
6.3囄注解
  在很多网站上我们都可以找C个共同的~点Q当|速慢时有很图片都无法昄Q又没有注解使得用户反感Q如在注册时的按钮是囄做的又没加图片注解,而导致连注册都找不到Q如果加了注解这些问题也׃成问题了Q?br />
6.4pȝ按钮
  在我们做按钮的时候,要做成“按钮”的形式Qtype="button"Q,而不要做成“提交表单”的形式Qtype="submit"Q,方便以后E序设计?br />
6.5I链接、死链接
  在一个优U、专业的|站上是找不CQ何一个空链接或死链接的情况,如果有这U情况会影响到用户对您网站的评hQ所以我们在制作的时候尽量避免,避免办法是提前做好链接Q如果尚未完成的面则链上“徏设中…”的面Q加以解释?br />
6.6D?br />  在大型的行业|站里面d航条最好是用文字Ş式,避免使用囄或Flash做导航条、羃网站扩展性?br />
6.7|站的扩展?br />  对于一个行业网站而言Q网站的扩展性是相当重要的,随时都要考虑到网站需求的变化Q?img src ="http://www.tkk7.com/qclass/aggbug/95930.html" width = "1" height = "1" />

]]>
如何开发一个专业的企业WEB|站http://www.tkk7.com/qclass/archive/2007/01/25/95929.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Thu, 25 Jan 2007 06:38:00 GMThttp://www.tkk7.com/qclass/archive/2007/01/25/95929.htmlhttp://www.tkk7.com/qclass/comments/95929.htmlhttp://www.tkk7.com/qclass/archive/2007/01/25/95929.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/95929.htmlhttp://www.tkk7.com/qclass/services/trackbacks/95929.html一Q前期准备工?br />>> 明确市场定位

企业正式开发和一个WEB|站之前Q须先清楚网站所提供产品或服务的对象是哪cȝ体—这是一个非常关键的问题。如果你的目标市场是那些富有的商业专业h士,那么|站设计应大方得体,z易用;但如果是q轻些的客户体Q则可以把版面做的生动活g些。M要因人制宜。要CQ网站是要让目标客户看的Qƈ吸引他们购买Q所以永q要把客L感受攑֜W一位?br />>> 定|站主题

企业的WEB|站应具有清晰鲜明的主题。要让访问者在d主页的第一D话之后p清楚该网站大致是做什么的Q而且可以q速了解到|站所提供的品或服务。若|站提供了多U不同品,不要把所有品都|列C个网中Q我们徏议大家分门别c,q对每种产品均设立相应的产品c?br />>> 色彩选择及搭?br />
|站l用L下第一印象的既不是|站丰富的内容,也不是网站合理的版面布局Q而是|站的色彩。不同的色彩搭配会生不同的效果Qƈ可能影响到访问者的情A。一个网站设计成功与否,在某U程度上取决于设计者对色彩的运用和搭配。因而确定网站的标准色彩是相当重要的一步?br />
色彩的数量:|站整体使用色彩以两CUؓ宜。颜色过多会使网늜h很花哨,但缺乏内在的感。在颜色选择和搭配上可借鉴一些国际大公司|站Q他们对颜色的选择相当审慎?br />色彩的搭配:色彩搭配一定要合理Q给Z和谐愉快的感觉。一般来_适合于网|准色的颜色有蓝色Q黄/色Q黑/?白色三大pd艌Ӏ在颜色的搭配上Q有几种比较l典的方案:U??? ?? U??? ??? ??白。实在不行就去Google一下吧Q找一个自己喜Ƣ的|站Q看看h家的颜色是怎么搭配使用的,或许会对你大有启发?br />其它注意事项Q避免采用纯度很高的单一色彩Q这样容易造成视觉疲劳。避免用过于明亮或Ҏq于强烈的颜Ԍ它们会对眼睛造成伤害Q如白底黄字{等。颜色对比过于接q或不合理的Q如深底字Q深底深字等(例如p色底和黑?也是设计之大忌。徏议最好用色背景(当然白色最?Q黑或深色文字?br />
>> 遵@K.I.S.S理念

老话说的好:Keep It Simple Stupid。Stupid在这里指“拙朴”,卛_求最z直观。该设计理念被奉为网站设计、搜索引擎优化和|上商务的黄金规则之一。如果你的网站无法ؓ讉K者提供最直接的品或服务信息Q就{于你在把自q潜在客户往竞争Ҏ的网站上送?br />二.设计三要?br />无论一个网站是Z什么目的,若想取得最大的成功Q则M证网站的便利、快速和便宜。这是网站设计中最基本的三个要素?br />要素一Q便利?br />保证客户可以用最的努力得到他们要找的资料信息。要做到q样Q你必须保|站为用h供了充分的便利性。根据这一原则Q我们在|站设计中应Q?br />
>> 建立良好|站l构

在设计时不单需要考虑站点的外观是否漂亮,q需要考虑到搜索引擎是否能够很好地支持你的设计l构。我们不大家使用下面q些设计形式Q?br />- Framesl构Q具有导航清C方便l护的优点,但搜索引擎对q类|站在烦引上仍有一定难度?br />- Flash动画Q网视觉效果较好,但搜索引擎同样在索上存在一定难度,而且影响|页的打开速度?br />- U图片网:搜烦引擎一般认L|站没有为用h供实质的信息内容Q因而是无轻重的?br />- 动态页面:hҎl护和更新的优点Q但必须了解Qƈ非所有的搜烦引擎都能够象对待静态页面一h对待动态页面,此外宜动态页面的参数可能?br />- Javascript/Java AppletsQ搜索引擎不支持Java AppletsQ此外Java设计的网站往往会媄响网늚打开速度?br />
>> 内容W一QŞ式其?br />
与其在网站的囄和颜色上下工夫Q不如多q旉在网站的内容上—客h兛_的莫q于产品的性能Q质量等{。只要你的内容够吸引hQ即使象白底黑字般简单的设计也远q胜q那些华丽的版面设计?br />>> 内容更新与沟?br />
企业Web站点建好后应不断补充以新的内宏V站点信息的不断更新不但可以让浏览者了解到企业的发展动态,同时也会帮助企业建立良好的Ş象?br />>> 增强|站可信?br />
互联|的非个人性容易ɾ|民滋生某种E度的不信Q感。你的客h否能够信MQ这其实完全取决于你?br />Q可从以下几斚w着手来增强|站的可信度
- |站内容信息的完整性及真实可信?br />- |站D清晰Q更新及时且无错误链?br />- 专业的网站设?br />- |站显著位置列出个h信息保密声明(隐私保护条款)
- |站显著位置列出服务条款信息
- 清楚地说明所有收贚w?br />- 寚w客服务咨询做出快速回?br />- 对网上支付,清楚说明如何保护信用卡信?br />- 向客户发送交易确认电子邮?br />- 对网站上发表的文章明说明作者及来源
- 避免链接C相关或者低质量的站?br />
>> 提供退ƾ承?br />
如果要向客户表明你的产品或服务的质量Q再没有比这更好的办法了?br />>> 提供便捷付款

作ؓ世界上最成功的“网l零售业”典范之一Q网上超市亚马?Amazon.com)q销售额达数十亿元的骄人成l一部分原因恐怕就要归功于其付ƾ手l的便捷性?br />对网上销售服务应保整个付款手箋清楚易用。尽量简化付ƾ步骤,除了交易所必须的信息之外,千万别要求客h供其它个Z息?br />可经常查看网l日志中关于客户付款斚w的信息。若d现客户付ƾ中途放弃退出的情况Q则需要重新检查付ƾ手l是否欠妥?br />
>> 充分利用客户推荐信息

一个网站上提供了客户对其品或服务的推荐或赞赏性的话,则在一定程度上可以提高公司和品的可信性。所以要充分利用客户或准客户对公司或产品的赞赏性的话语Q不q在|上发布之前先须征得他们的同意?br />>> 提供产品脓士信?br />
从细节着手,向客h供一些针对品或服务所出现的问题的单解x案?

]]>
GUI设计忌http://www.tkk7.com/qclass/archive/2007/01/25/95927.htmlQpdcR方法、变量…?/dc:creator>QpdcR方法、变量…?/author>Thu, 25 Jan 2007 06:35:00 GMThttp://www.tkk7.com/qclass/archive/2007/01/25/95927.htmlhttp://www.tkk7.com/qclass/comments/95927.htmlhttp://www.tkk7.com/qclass/archive/2007/01/25/95927.html#Feedback0http://www.tkk7.com/qclass/comments/commentRss/95927.htmlhttp://www.tkk7.com/qclass/services/trackbacks/95927.htmlq是一很好的ȝ文章Q关于界面设计一些基本原则归UI在设计的时候很有帮?br />
本文列DJeff Johnson:《GUI设计忌》一书中提及的明针对Web设计和笔者认为对Web设计有参考意义的设计原则和禁忌。设计Web目时尽量参考一下基本原则,避免设计忌Q应该能使Web目的GUI上一个层ơ?br />
基本原则Q?br />
1、关注用户及其Q务,而不是技?br />
2、首先考虑功能Q然后才是表C?br />
3、从用户的视角看问题Q用用L词汇q行描述

4、不要向用户暴露实现l节

5、常用的用户Q务简单化Q不要让用户解决额外的问?br />
6、保持一致性,引导用户的用习?br />
7、保持显C惯性,传递信息,而不仅仅是数?br />
8、设计应满响应需?br />
忌Q?br />
1、同一面包含重复功能的链接或按钮

2、将复选框用作单选按?br />
3、无初始值的多选一讄

4、在非开/兌|中使用复选框

5、用文本框显C只L?br />
6、单选按钮之间间隔太?br />
7、属性标记对齐方式不一?br />
8、当前无效的控g不充分置?br />
9、显C对用户无意义的错误提示

10、不同的cd面H口昄相同的标?br />
11、窗口的标题和调用的命o不一?br />
12、要求用戯入随机数

13、相似的功能却有不一致的用户操作界面

14、取消按钮无法真正取消操?br />
15、网站结构反映公司的l构或网站升U的历史

16、返回按钮不能达到预期的目的

17、搜索选项q多Q过度复?br />
18、用容易被忽略的隐藏的囄链接

19、需要向下滚动才能看到当前页的重要信?br />
20、图片按钮对鼠标按下操作没有视觉变化

21、无意义的虚假进度条

22、执行长旉的Q务时鼠标指针不显C成忙状?br />
23、不考虑用户可能的h为的错误输入

24、认为好的UI是漂亮的UI

25、盲目错误的使用面模块化设?

]]>
վ֩ģ壺 51ƷƵѹר| ޾Ʒ| ޱר| ޾ƷƬ| ޾ƷĻþò| ߾ƷһС˵ | Ʒר| ޾Ʒ״| ޹˾þۺ| ޹| պþëƬ| ý61| Ѹþ| 99Ƶ߹ۿ| 㽶Ѳ| 99ƷƵۿ| Ļ| ؼAƬëƬ69| ѹۿĻ| һƵ| tsƵ| ޳777777Ʒ| AVרAWWW| ޱ龫Ʒһ | ѿƵ| պƵ| ާѡþþþƷ| һĻ| ޹Ʒһڶҳ| ޻ɫ߹ۿվ| ۺϾƷ| һػaѴƬ| Ļavѷdvd| 67194| ֻӲˬƬ| ۺϵ| Ů˳Ժ˾޸| avһվ²| ӰӾ߹ۿȫ | һëƬƵ| ߹ۿavվ|