隨筆-60  評(píng)論-35  文章-15  trackbacks-0
            2007年1月25日
          站長(zhǎng)工具
            eWebEditor網(wǎng)頁(yè)編輯器
            FCKEditor在線編輯器
            HTML在線編輯器
            所見即所得CSS編輯器
            CSS整形與最佳化工具

            顏色工具
            配色方案創(chuàng)建工具二
            在線網(wǎng)頁(yè)配色器

            網(wǎng)絡(luò)輔助
            超級(jí)轉(zhuǎn)貼工具
            易貼網(wǎng)絡(luò)備忘錄
            超級(jí)編碼轉(zhuǎn)換器

            查詢工具
            中國(guó)站長(zhǎng)站查詢工具
            日梭萬年歷
            世界網(wǎng)絡(luò)查詢工具
            在線電子地圖
            全國(guó)報(bào)紙雜志電子版總匯
            全息在線萬年歷

            圖片工具
            Logo在線制作
            IE版圖像處理工具
            圖片倉(cāng)庫(kù)
            Eoool在線圖片制作
            在線生成圖片按鈕的工具
            在線生成條形碼和印章的工具
            字庫(kù)字體在線工具
            在線按鈕制作工具
            多媒體可視化開發(fā)系統(tǒng)
            愛狗狗吧在線彩字生成工具
            在線照片相框生成工具

            加密解密
            網(wǎng)頁(yè)加密解密工具

            計(jì)算工具
            多功能計(jì)算器

            在線手冊(cè)
            終極配色手冊(cè)
            邁至科ASP在線技術(shù)手冊(cè)
            XML官方指南中文版
            Windows API 參考大全
            VBScript 語(yǔ)言參考
            VB API 參考手冊(cè)
            PHP用戶手冊(cè)
            PHP編碼規(guī)范
            InnoDB  中文參考手冊(cè)
            文檔對(duì)象模型中文手冊(cè)
            網(wǎng)頁(yè)制作完全手冊(cè)
            默認(rèn)行為中文手冊(cè)
            樣式表濾鏡中文手冊(cè)
            樣式表中文手冊(cè)


          轉(zhuǎn)載自:http://www.egil.cn/article.asp?id=333
          posted @ 2008-01-05 20:45 Q系列類、方法、變量…… 閱讀(360) | 評(píng)論 (0)編輯 收藏

            一、AS調(diào)用JS方法時(shí)出現(xiàn)同名方法查看實(shí)例

            AS代碼如下:

          import flash.external.*;
          var v = ExternalInterface.available;
          t_btn.onRelease 
          = function (){
          //調(diào)用JS函數(shù)
          var s = ExternalInterface.call("say","JS函數(shù)調(diào)用成功!")
          //調(diào)用AS本地函數(shù)
          += say("\n本地函數(shù)調(diào)用成功!");
          r_txt.text 
          = s;
          }
          //AS本地函數(shù)
          function say(s){
          return s;
          }  
          HTML代碼:
          //定義一個(gè)JS函數(shù)
          function say(txt){
          return txt;
          可以看到在JS中定義了一個(gè)say方法供AS調(diào)用,現(xiàn)在我們?cè)贏S中定義了一個(gè)同名的say方法來驗(yàn)證它們是否會(huì)出現(xiàn)覆蓋。結(jié)果證明它們不會(huì)覆蓋,都工作得很好。(PS:不錯(cuò)~)

          二、JS調(diào)用AS方法時(shí)出現(xiàn)同名方法查看實(shí)例

            AS代碼如下:

          //導(dǎo)入包
          import flash.external.*;
          //提供JS訪問的函數(shù)名
          var _method:String = "say";
          //指定本地函數(shù)中this變量的作用域,可設(shè)置為null留空
          var e_area:Object = null;
          //AS內(nèi)部函數(shù)名
          var method:Function = say;
          //將函數(shù)注冊(cè)到容器列表
          var wasSuccessful:Boolean = ExternalInterface.addCallback(_method, method);
          ↑ 這里返回的void因此無法轉(zhuǎn)換為Boolean

          //查看注冊(cè)是否成功
          if(wasSuccessful){
          result_txt.text 
          = "函數(shù)注冊(cè)成功";
          }
          //本地的函數(shù)
          function say(txt:String) {
          result_txt.text 
          = txt;
          }

          HTML代碼如下:
          <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 調(diào)用 flash 方法</title>
          <script language="javascript">AC_FL_RunContent = 0;</script>
          <script src="AC_RunActiveContent.js" language="javascript"></script>
          </head>
          <body bgcolor="#ffffff">
          <!--影片中使用的 URL-->
          <!--影片中使用的文本-->
          <!--
          <p>你們好</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="flash讀取css.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />    <embed name="myFlash" swLiveConnect="true" src="flash讀取css.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>


          //定義一個(gè)JS本地函數(shù)
          function say(s){
          thisMovie(
          "myFlash").say(s);
          //↑這里的demo指的是使用Object插入flash的時(shí)候指定的id和embed指定的name,例如:id="demo"和name="demo"

          alert(s);
          }

          //瀏覽器兼容訪問DOM,并且將 flash Object返回
          function thisMovie(movieName) {
          if (navigator.appName.indexOf("Microsoft"!= -1) {
          return window[movieName]
          }
          else {
          return document[movieName]
          }
          }

          </script>


          <form name="www">
          內(nèi)容:
          <input type="text" name="sendText" maxlength="45" onChange="say(this.value)" > 
          </form>
          </body>
          </html>

          可以看到在AS中定義了一個(gè)say方法供JS調(diào)用,現(xiàn)在我們?cè)贘S中定義了一個(gè)同名的say方法來驗(yàn)證它們是否會(huì)出現(xiàn)覆蓋。結(jié)果證明它們不會(huì)覆蓋,都工作得很好。(PS:也不錯(cuò)~)

            通過上面的兩個(gè)例子我們可以得出結(jié)論在使用ExternalInterface時(shí)即使定義了同名方法,也不會(huì)造成方法覆蓋,你大可放心使用。



          其余
          ============================================================
           在論壇上經(jīng)常看見有新手問到“我想讓FLASH得到URL中的參數(shù)ID號(hào),該怎么辦?”“某某視頻網(wǎng)站的FLASH播放器是如何播放不同ID的視頻的?”...諸如此類問題看到了太多,每次都有一堆回帖,眾說紛紜,里面難免有誤導(dǎo)性質(zhì)的回復(fù)。今天特結(jié)合自己平時(shí)工作中使用的心得對(duì)此類問題做一個(gè)小小的歸納。
            我所指的靜態(tài)傳值是區(qū)別于與服務(wù)端通信進(jìn)行值傳遞的方式,例如LoadVars,XML,Remoting之類,后者暫且不在本文的討論范圍內(nèi),當(dāng)你想讓FLASH獲取URL中的參數(shù)時(shí),你為何不換個(gè)角度想了?其實(shí)我們可以讓服務(wù)端動(dòng)態(tài)生成SWF的的插入代碼,主動(dòng)將我們需要的參數(shù)“靜態(tài)”傳遞給FLASH,F(xiàn)LASH直接用就可以了,根本不需要自己去拿,而以何種形式傳遞給FLASH,就是我所指的靜態(tài)傳值。我知道的可行的HTML與FLASH之間的靜態(tài)傳值方法有三種:
          • SWF地址后使用參數(shù)傳遞符“?”
          • FlashVars傳遞
          • JS控制

            下面來具體介紹下這三種方式的傳遞是如何工作的:
            

          一、SWF地址后使用參數(shù)傳遞符“?”

            我們知道,在ULR地址中使用參數(shù)傳遞符“?”可以以GET方式傳遞參數(shù),例如http://www.v-sky.com?uid=12&uname=vsky,這里使用了參數(shù)傳遞符“?”,同時(shí)使用了連接符“&”做為變量分隔標(biāo)識(shí),以這種規(guī)范的格式來傳遞兩個(gè)參數(shù):uid=12和uname=vsky,那么服務(wù)端可以使用GET方式獲取這兩個(gè)值。
            在FLASH中我們同樣可以采用類似的方式來傳遞參數(shù),HTML頁(yè)面中插入SWF文件最常用的就是使用Object標(biāo)簽和Embed標(biāo)簽結(jié)合的方式,這也是Adobe的推薦方式:
            
          <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="center">
          <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>



            其中粗體部分對(duì)應(yīng)的就是SWF文件的地址,那么我們可以在這個(gè)地址后面通過類似于URL中GET方式傳參的方法來個(gè)SWF傳遞參數(shù),例如上面代碼在頁(yè)面完全加載完畢時(shí),它已經(jīng)給SWF文件寫入了兩個(gè)變量:uid=12和uname=vsky。

            

          二、FlashVars傳遞

            你可以查閱FLASH幫助文檔來看FlashVars的官方定義。其實(shí)在HTML語(yǔ)法中,這是一個(gè)被很多新手所忽視的屬性,同樣以上面的參數(shù)為例,下面用FlashVars來傳遞變量:

          <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="center">
          <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>


            跟方式一相同,它也是直接給FLASH里添加了這兩個(gè)變量。但我個(gè)人推薦使用此方式,結(jié)合SWFObject的使用,使用FlashVars來傳遞變量有很多好處,例如代碼清晰,容易管理,瀏覽其兼容,符合標(biāo)準(zhǔn)。他們的結(jié)合使用在“為FLASH程序構(gòu)造靈活的接口”一文中我已經(jīng)做了介紹(PS:隨后我會(huì)提供一個(gè)復(fù)雜點(diǎn)的、有說服力的實(shí)際應(yīng)用來說明這種靈活接口的使用)。
            

          三、JS控制

            對(duì)于客戶端頁(yè)面中的資源,JS通過DOM結(jié)構(gòu)來控制它們可以說是隨心所欲的,F(xiàn)LASH也不例外,下面是Flash Player的Javascript方法一覽表:


          Play() —————————————- 播放動(dòng)畫
          StopPlay()————————————停止動(dòng)畫
          IsPlaying()———————————– 動(dòng)畫是否正在播放
          GotoFrame(frame_number)—————- 跳轉(zhuǎn)到某幀
          TotalFrames()——————————- 獲取動(dòng)畫總幀數(shù)
          CurrentFrame()——————————回傳當(dāng)前動(dòng)畫所在幀數(shù)-1
          Rewind()————————————-使動(dòng)畫返回第一幀
          SetZoomRect(left,top,right,buttom)——-放大指定區(qū)域
          Zoom(percent)——————————改變動(dòng)畫大小
          Pan(x_position,y_position,unit)————使動(dòng)畫在x,y方向上平移
          PercentLoaded()—————————-返回動(dòng)畫被載入的百分比
          LoadMovie(level_number,path)———– 加載動(dòng)畫
          TGotoFrame(movie_clip,frame_number)- movie_clip跳轉(zhuǎn)到指定幀數(shù)
          TGotoLabel(movie_clip,label_name)—— movie_clip跳轉(zhuǎn)到指定標(biāo)簽
          TCurrentFrame(movie_clip)————— 回傳movie_clip當(dāng)前幀-1
          TCurrentLabel(movie_clip)—————–回傳movie_clip當(dāng)前標(biāo)簽
          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指定標(biāo)簽上的action
          TGetProperty(movie_clip,property)——–獲取movie_clip的指定屬性
          TSetProperty(movie_clip,property,number)———-設(shè)置movie_clip的指定屬性



            在這里我們只需要使用的是粗體標(biāo)識(shí)的SetVariable方法,JS通過調(diào)用此方法能夠直接更改SWF中的變量值。首先我們需要定義插入的SWF的ID,例如id為VskyDemo,那么我們可以通過下面的JS語(yǔ)句來完成SWF內(nèi)部變量的設(shè)置:

          window.document.VskyDemo.SetVariable("uid", 12);


            很簡(jiǎn)單吧,就是這樣的。除非是涉及到了HTML中SWF之外元素跟它交互,否則我一般不使用JS來控制SWF里的變量,因?yàn)槲铱傆X得怪怪的,呵呵,個(gè)人習(xí)慣吧。
            多多實(shí)踐,不要覺得這些小東西不起眼,小東西多了,聚結(jié)到一起了就是一個(gè)大的應(yīng)用。
            條條大路通北京,選擇你自己喜歡的,自己認(rèn)為便捷的方式就可以了,目前我是沒有發(fā)現(xiàn)這三個(gè)方式存在功能上的缺陷。


          ======================================================================================

          前言、JavaScript和Macromedia Flash的通信示例

          原文地址: http://www.macromedia.com/support/flash/ts/documents/java_script_comm.htm
          說明: 略作修改,主要是一些很初級(jí)的操作; 又很多相似的文章,不過這個(gè)很權(quán)威

          下面是一些在Flash和使用Javascript的HTML文件直接通信的示例,每個(gè)示例都有簡(jiǎn)略的步驟

          本文討論了3種基本的Flash/Javascript通信方式:
          Javascript 到 Flash的通信----使用Flash播放器的javascript方法
          Flash 到 Javascript的通信----使用Flash的fscommand
          Flash 到 Flash的通信----------使用本地連接對(duì)象或綜合上2種技術(shù)

          并不是所有的瀏覽器都很重視腳本.為了和Flash播放器通信,瀏覽器必須有內(nèi)置的鉤子以便Flash播放器可以'監(jiān)聽'.瀏覽器必須是下列的幾種:
          Netscape Navigator 3.0-4.7x, 和 Netscape 6.2或更高
          (Windows 95/98/NT/2000/XP 或 MacOS; 允許Java和LiveConnect)
          Internet Explorer 3.0 或更高
          (僅Windows 95/98/NT/2000/XP; 允許ActiveX)

          注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持這種方法.請(qǐng)查看本文的附加信息

          一、Javascript到Flash的通信

          這個(gè)例子演示了如何使用Flash的method把變量從HTML的input text 發(fā)送到該頁(yè)面中的Flash文件中.HTML input的數(shù)據(jù)通過Flash的SetVariable方法傳送到Flash文件中.

          查看示例:示例
          下載源文件: javascript_to_flash.zip(17k)

          步驟:

          Flash中
          1.新建一個(gè)文件,保存為javascript_to_flash.fla
          2.用文字工具在舞臺(tái)上創(chuàng)建一個(gè)文本域
          3.選擇這個(gè)文本域,在屬性面板中,從下拉列表中選擇動(dòng)態(tài)文本(Dynamic Text),在變量(variable)欄填上"myVar"
          注意:最好的習(xí)慣是使用Instance,用myVar.text更改myVar的值.為了簡(jiǎn)單起見和兼容Flash4和Flash5,我們使用的是變量名的形式.
          4.保存文件
          5.發(fā)布HTML文件和SWF文件

          Dreamweaver中
          下一步的工作轉(zhuǎn)移到Dreamweaver中了,當(dāng)然也可以是其他的HTML編輯器
          1.打開上一步發(fā)布的HTML文件
          2.插入生成的SWF文件和OBJECT/EMBED標(biāo)簽
          (1) Insert>Media>Flash,并選擇這個(gè)Flash
          (2) 切換到代碼視圖,我們需要修改被選中的<OBJECT>和<EMBED>標(biāo)簽
          (3) 在OBJECT標(biāo)簽中,插入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">

          注意:如果你是粘貼復(fù)制代碼的話,確保刪除不必要的換行.否則可能會(huì)引起錯(cuò)誤; id也可以在屬性面板里直接輸入
          (4) 在EMBED標(biāo)簽中,插入name="myFlash"和swLiveConnect="true",確保沒有使用id屬性!代碼應(yīng)當(dāng)是這樣子的:

          <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.創(chuàng)建表單域
          (1) 回到設(shè)計(jì)視圖
          (2) 插入文本域(Insert> Form Object> Text Field),如果詢問是否添加表單域,選擇是
          (3) 把文本域的HTML標(biāo)簽修改成這樣:

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

          每當(dāng)文本域內(nèi)容發(fā)生變化時(shí),onChange就被觸發(fā),doPassVar()函數(shù)就被調(diào)用

          4.創(chuàng)建傳遞變量值的Javascript函數(shù)
          復(fù)制下面的Javascript到<head></head>標(biāo)簽內(nèi)

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

          5.保存文件,測(cè)試一下(F12)

          二、Flash到Javascript的通信

          從HTML可以發(fā)送數(shù)據(jù)到Flash,反過來也可以. 這個(gè)例子演示了如何應(yīng)用Flash的Fscommand來發(fā)送數(shù)據(jù)到Javascript.

          查看示例:示例2
          下載源文件: flash_to_javascript.zip(10K)

          簡(jiǎn)要步驟:
          Flash中
          新建一個(gè)文件,保存為flash_to_javascript.fla
          創(chuàng)建一個(gè)文本域,設(shè)置成輸入文本(Input Text),選擇"border"以便我們能看到他,指定他的變量為inputVar
          創(chuàng)建一個(gè)按鈕,在按鈕上添加如下的as:

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

          保存文件,導(dǎo)出HTML和SWF

          Dreamweaver中
          1.打開導(dǎo)出HTML文件,修改<OBJECT>和<EMBED>標(biāo)簽,結(jié)果同上:

          <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到<Body>標(biāo)簽內(nèi):

          <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中兩個(gè)或者更多的Flash直接可以相互傳送消息. 從一個(gè)flash使用fscommand傳送消息給Javascript,使用Flash的Javascript methods把消息傳給另外一個(gè)flash

          詳細(xì)的看這里:Flash影片之間的通信示例

          從Flash MX開始,local connection對(duì)象可以用來在flash之間傳送消息. 這使得同一HTML中的或者位于兩個(gè)瀏覽器窗口中的兩個(gè)flash影片可以相互發(fā)送消息,而不必使用Javascript或者fscommand
          詳細(xì)的看這里:在Flash MX中使用local connection對(duì)象(英文)

          本站的localConnection教程:http://www.flashempire.com/school/tutorview.php?id=327

          附可控制Flash Player的Javascript方法:
          一覽表:
          Play() ---------------------------------------- 播放動(dòng)畫
          StopPlay()------------------------------------停止動(dòng)畫
          IsPlaying()----------------------------------- 動(dòng)畫是否正在播放
          GotoFrame(frame_number)---------------- 跳轉(zhuǎn)到某幀
          TotalFrames()------------------------------- 獲取動(dòng)畫總幀數(shù)
          CurrentFrame()------------------------------回傳當(dāng)前動(dòng)畫所在幀數(shù)-1
          Rewind()-------------------------------------使動(dòng)畫返回第一幀
          SetZoomRect(left,top,right,buttom)-------放大指定區(qū)域
          Zoom(percent)------------------------------改變動(dòng)畫大小
          Pan(x_position,y_position,unit)------------使動(dòng)畫在x,y方向上平移
          PercentLoaded()----------------------------返回動(dòng)畫被載入的百分比
          LoadMovie(level_number,path)----------- 加載動(dòng)畫
          TGotoFrame(movie_clip,frame_number)- movie_clip跳轉(zhuǎn)到指定幀數(shù)
          TGotoLabel(movie_clip,label_name)------ movie_clip跳轉(zhuǎn)到指定標(biāo)簽
          TCurrentFrame(movie_clip)--------------- 回傳movie_clip當(dāng)前幀-1
          TCurrentLabel(movie_clip)-----------------回傳movie_clip當(dāng)前標(biāo)簽
          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指定標(biāo)簽上的action
          TGetProperty(movie_clip,property)--------獲取movie_clip的指定屬性
          TSetProperty(movie_clip,property,number)-設(shè)置movie_clip的指定屬


          posted @ 2007-12-18 18:00 Q系列類、方法、變量…… 閱讀(2959) | 評(píng)論 (2)編輯 收藏
          alter table admin                #<---- 表名
             add CONSTRAINT `xxid_fk`      #<---- 復(fù)合主鍵名稱
                FOREIGN KEY (`xxid`)       #<---- 表字段名
                  REFERENCES `club`(`id`)  #<---- 外鍵表名+字段名
          posted @ 2007-04-13 15:15 Q系列類、方法、變量…… 閱讀(301) | 評(píng)論 (0)編輯 收藏

          動(dòng)態(tài)圖片新聞,JS實(shí)現(xiàn).


          <script language="JavaScript">
          var imgUrl=new Array();
          var imgLink=new Array();
          var imgText=new Array();
          var picNum=0;
          imgUrl[1]="圖片地址一";
          imgLink[1]="鏈接1";
          imgText[1]="標(biāo)題或簡(jiǎn)介或其它HTML內(nèi)容1";
          imgUrl[2]="圖片地址二";
          imgLink[2]="鏈接2";
          imgText[2]="標(biāo)題或簡(jiǎn)介或其它HTML內(nèi)容2";
          imgUrl[3]="圖片地址三";
          imgLink[3]="鏈接3";
          imgText[3]="標(biāo)題或簡(jiǎn)介或其它HTML內(nèi)容3";
          imgUrl[4]="圖片地址四";
          imgLink[4]="鏈接4";
          imgText[4]="標(biāo)題或簡(jiǎn)介或其它HTML內(nèi)容4";
          imgUrl[5]="圖片地址五";
          imgLink[5]="鏈接5";
          imgText[5]="標(biāo)題或簡(jiǎn)介或其它HTML內(nèi)容5";


          function NextPic(){
          ??? if(picNum<4) picNum++ ;//顯示4個(gè)圖片
          ??? else picNum=1;
          ??? if (document.all){
          ??????? //下面注意,如果存在于FORM表單中,需要使用下面的方法,否則可直接使用name。
          ??????? document.imgInit.filters.revealTrans.Transition=Math.floor(Math.random()*23);
          ??????? document.imgInit.filters.revealTrans.apply();
          ??????? document.imgInit.filters.revealTrans.play();
          ??? }
          ??? document.images.imgInit.src=imgUrl[picNum];
          ??? //如果不是圖片,而是SWF等,可做判斷,內(nèi)容可在程序中做好,再放于下面。
          ??? focustext.innerHTML='<a href='+imgLink[picNum]+' target=_blank>'+imgText[picNum]+'</a>';
          ??? //設(shè)置翻頁(yè)時(shí)間
          ??? theTimer=setTimeout('NextPic()', 3000);
          }


          function goUrl(){
          ??? window.open(imgLink[picNum],'_blank');
          }
          </script>


          HTML代碼中:
          可以做到控件中
          <TABLE cellPadding=0 width=100% border=0>
          ??????? <TR>
          ????????? <TD align=middle height="140" >
          <div align='center'>
          <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>
          <TR><TD align=middle height="38" ><div name=focustext id=focustext align='center'></div>
          </div>
          </TD></TR></TABLE>

          posted @ 2007-01-25 15:25 Q系列類、方法、變量…… 閱讀(2670) | 評(píng)論 (1)編輯 收藏
          生活規(guī)律34條
          1.不說“不可能”。
          2.凡事第一反應(yīng):找方法,而不是找借口。
          3.遇到挫折對(duì)自己大聲說:太棒了!
          4.不說消極的話,不落入消極情緒,一旦出現(xiàn)立即正面處理。
          5.凡事先訂立目標(biāo),并且盡量制作“夢(mèng)想版”。
          6.凡事預(yù)先作計(jì)劃,盡量將目標(biāo)視覺化。
          7.每一分,每一秒都做有用的事情。
          8.隨時(shí)用零碎的時(shí)間(如等人、排隊(duì)等)做零碎的小活。
          9.守時(shí)。
          10.不要太依靠腦袋記憶,好腦子不如爛筆頭。
          11.隨時(shí)記錄靈感。
          12.把重要的觀念、方法寫下來,并貼起來,隨時(shí)提示自己。
          13.走路比平時(shí)快30%。走路時(shí),腳尖稍用力推進(jìn);肢體語(yǔ)言健康有力,不懶散、萎靡。
          14.每天出門照鏡子,給自己一個(gè)自信的笑容。
          15.每天自我反省一次。
          16.每天堅(jiān)持一次運(yùn)動(dòng)。
          17.聽心跳1分鐘(在做重要事前、疲勞時(shí)、心情煩躁時(shí)、緊張時(shí))。
          18.開會(huì)坐在前排。
          19.微笑。
          20.用心傾聽,不打斷對(duì)方說話。
          21.說話時(shí),聲音有力。感覺自己聲音似乎能產(chǎn)生有感染力的磁場(chǎng)。
          22.說話之前,先考慮一下對(duì)方的感受。
          23.每天有意識(shí)、真誠(chéng)地贊美別人3次以上。
          24.及時(shí)寫感謝卡,哪怕是用便箋寫。
          25.不用訓(xùn)斥、指責(zé)的口吻跟別人說話。
          26.控制自己,遇事第一反應(yīng)是不要為自己辯解。
          27.每天多做一件“分外事”。
          28.不管任何方面,每天必須至少做一次“進(jìn)步一點(diǎn)點(diǎn)”。
          29.每天提前15分鐘上班,推遲30分鐘下班。
          30.每天在下班前用5分鐘的時(shí)間做一天的整理性工作。
          31.定期存錢。
          32.節(jié)儉。
          33.時(shí)常運(yùn)用“頭腦風(fēng)暴”。
          34.恪守誠(chéng)信,說到做到。
          posted @ 2007-01-25 15:24 Q系列類、方法、變量…… 閱讀(303) | 評(píng)論 (0)編輯 收藏

          Apache服務(wù)器的設(shè)置文件位于/usr/local/apache/conf/目錄下,傳統(tǒng)上使用三個(gè)配置文件httpd.conf,access.conf和srm.conf,來配置Apache服務(wù)器的行為。

          ??? httpd.conf提供了最基本的服務(wù)器配置,是對(duì)守護(hù)程序httpd如何運(yùn)行的技術(shù)描述;srm.conf是服務(wù)器的資源映射文件,告訴服務(wù)器各種文件的MIME類型,以及如何支持這些文件;access.conf用于配置服務(wù)器的訪問權(quán)限,控制不同用戶和計(jì)算機(jī)的訪問限制;這三個(gè)配置文件控制著服務(wù)器的各個(gè)方面的特性,因此為了正常運(yùn)行服務(wù)器便需要設(shè)置好這三個(gè)文件。

            除了這三個(gè)設(shè)置文件之外,Apache還使用mime.types文件用于標(biāo)識(shí)不同文件
          對(duì)應(yīng)的MIME類型, magic文件設(shè)置不同MIME類型文件的一些特殊標(biāo)識(shí),使得 Apache 服務(wù)器從文檔后綴不能判斷出文件的MIME 類型時(shí),能通過文件內(nèi)容中的這些特殊標(biāo)記來判斷文檔的MIME類型。

          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

            事實(shí)上當(dāng)前版本的Apache將原來httpd.conf、srm.conf與access.conf中的所有配置參數(shù)均放在了一個(gè)配置文件 httpd.conf中,只是為了與以前的版本兼容的原因(使用這三個(gè)設(shè)置文件的方式來源于NCSA-httpd),才使用三個(gè)配置文件。而提供的 access.conf和srm.conf文件中沒有具體的設(shè)置。

            由于在新版本的Apache中,所有的設(shè)置都被放在了httpd.conf中,因此只需要調(diào)整這個(gè)文件中的設(shè)置。以下使用缺省提供的httpd.conf為例,解釋Apache服
          務(wù)器的各個(gè)設(shè)置選項(xiàng)。然而不必因?yàn)樗峁┰O(shè)置的參數(shù)太多而煩惱,基本上這些
          參數(shù)都很明確,也可以不加改動(dòng)運(yùn)行Apache服務(wù)器。但如果需要調(diào)整Apache服務(wù)
          器的性能,以及增加對(duì)某種特性的支持,就需要了解這些設(shè)置參數(shù)的含義。

            關(guān)于Apache服務(wù)器的性能,在Internet上存在很大的爭(zhēng)議,基本上使用Apache的使用者幾乎都不懷疑它的優(yōu)秀性能,Apache也支撐了很多著名的高負(fù)載的網(wǎng)站,但是在商業(yè)機(jī)構(gòu)的評(píng)測(cè)中,Apache往往得分不高。很多人指出,在這些評(píng)測(cè)中,商業(yè)Web服務(wù)器及其操作系統(tǒng)往往由其專業(yè)公司的工程師進(jìn)行過性能調(diào)整,而Free 的操作系統(tǒng)和Web服務(wù)器往往就使用其缺省配置或僅僅作很小的更改。需要指出的是,除了操作系統(tǒng)的性能調(diào)整之外,Apache 服務(wù)器本身的缺省配置絕不是最優(yōu)化和最高效的,而是要適應(yīng)幾乎所有種類操作系統(tǒng)、所有種類硬件下的設(shè)置,多平臺(tái)的軟件不可能為特定平臺(tái)和特定硬件提供最優(yōu)化的缺省配置。因此要使用Apache的時(shí)候,性能調(diào)整是必不可少的。

            在商業(yè)評(píng)測(cè)中忽略了的另一個(gè)事實(shí)是,評(píng)測(cè)時(shí)往往對(duì)不同種類的功能進(jìn)行比
          較,例如使用Apache的標(biāo)準(zhǔn)CGI 的性能與ISAPI,NSAPI等服務(wù)器端API比較,事實(shí)上Apache服務(wù)器與此可以比較的功能為modperl ,F(xiàn)astCGI,與ASP類似的功能為PHP等等,只不過由于Apache的開放模式,這些功能是由獨(dú)立的開發(fā)組,作為獨(dú)立的模塊來實(shí)現(xiàn)的。但是在評(píng)測(cè)中,測(cè)試人員沒有加入相應(yīng)的模塊評(píng)測(cè)其性能。

          HTTP守護(hù)進(jìn)程的運(yùn)行參數(shù)

            httpd.conf中首先定義了一些httpd守護(hù)進(jìn)程運(yùn)行時(shí)需要的參數(shù),來決定其運(yùn)行方式和運(yùn)行環(huán)境。

            ServerType standalone
            ServerType定義服務(wù)器的啟動(dòng)方式,缺省值為獨(dú)立方式standalone,httpd
          服務(wù)器將由其本身啟動(dòng),并駐留在主機(jī)中監(jiān)視連接請(qǐng)求。在Linux下將在啟動(dòng)文件 /etc/rc.d/rc.local/init.d/apache中自動(dòng)啟動(dòng)Web服務(wù)器,這種方式是推薦設(shè)置。
            啟動(dòng)Apache服務(wù)器的另一種方式是inet方式,使用超級(jí)服務(wù)器inetd監(jiān)視連接請(qǐng)求并啟動(dòng)服務(wù)器。當(dāng)需要使用inetd啟動(dòng)方式時(shí),便需要更改為這個(gè)設(shè)置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd.conf并重起 inetd,那么Apache就能從inetd中啟動(dòng)了。
            兩種方式的區(qū)別是獨(dú)立方式是由服務(wù)器自身管理自己的啟動(dòng)進(jìn)程,這樣在啟
          動(dòng)時(shí)能立即啟動(dòng)服務(wù)器的多個(gè)副本,每個(gè)副本都駐留在內(nèi)存中,一有連接請(qǐng)求不需要生成子進(jìn)程就可以立即進(jìn)行處理,對(duì)于客戶瀏覽器的請(qǐng)求反應(yīng)更快,性能較
          高。而 inetd方式要由inetd發(fā)現(xiàn)有連接請(qǐng)求后才去啟動(dòng)http服務(wù)器,由于inetd 要監(jiān)聽太多的端口,因此反應(yīng)較慢、效率較低,但節(jié)約了沒有連接請(qǐng)求時(shí)Web服務(wù)器占用的資源。因此inetd方式只用于偶爾被訪問并且不要求訪問速度的服務(wù)器上。事實(shí)上inetd方式不適合http的突發(fā)和多連接的特性,因?yàn)橐粋€(gè)頁(yè)面可能包含多個(gè)圖象,而每個(gè)圖象都會(huì)引起一個(gè)連接請(qǐng)求,即使雖然訪問人數(shù)造成教少,但瞬間的連接請(qǐng)求并不少,這就受到inetd性能的限制,甚至?xí)绊懹蒳netd啟動(dòng)的其他服務(wù)器程序。

            ServerRoot "/usr/local"
            ServerRoot用于指定守護(hù)進(jìn)程httpd的運(yùn)行目錄,httpd在啟動(dòng)之后將自動(dòng)將
          進(jìn)程的當(dāng)前目錄改變?yōu)檫@個(gè)目錄,因此如果設(shè)置文件中指定的文件或目錄是相對(duì)
          路徑,那么真實(shí)路徑就位于這個(gè)ServerRoot定義的路徑之下。
            由于httpd會(huì)經(jīng)常進(jìn)行并發(fā)的文件操作,就需要使用加鎖的方式來保證文件操作不沖突,由于NFS文件系統(tǒng)在文件加鎖方面能力有限,因此這個(gè)目錄應(yīng)該是本地磁盤文件系統(tǒng),而不應(yīng)該使用NFS文件系統(tǒng)。

            #LockFile /var/run/httpd.lock
            LockFile參數(shù)指定了httpd守護(hù)進(jìn)程的加鎖文件,一般不需要設(shè)置這個(gè)參數(shù), Apache服務(wù)器將自動(dòng)在ServerRoot下面的路徑中進(jìn)行操作。但如果ServerRoot為NFS文件系統(tǒng),便需要使用這個(gè)參數(shù)指定本地文件系統(tǒng)中的路徑。

            PidFile /var/run/httpd.pid
            PidFile指定的文件將記錄httpd守護(hù)進(jìn)程的進(jìn)程號(hào),由于httpd能自動(dòng)復(fù)制其自身,因此系統(tǒng)中有多個(gè)httpd進(jìn)程,但只有一個(gè)進(jìn)程為最初啟動(dòng)的進(jìn)程,它為其他進(jìn)程的父進(jìn)程,對(duì)這個(gè)進(jìn)程發(fā)送信號(hào)將影響所有的httpd進(jìn)程。PidFILE定義的文件中就記錄httpd父進(jìn)程的進(jìn)程號(hào)。

            ScoreBoardFile /var/run/httpd.scoreboard
            httpd使用ScoreBoardFile來維護(hù)進(jìn)程的內(nèi)部數(shù)據(jù),因此通常不需要改變這個(gè)參數(shù),除非管理員想在一臺(tái)計(jì)算機(jī)上運(yùn)行幾個(gè)Apache服務(wù)器,這時(shí)每個(gè)Apache服務(wù)器都需要獨(dú)立的設(shè)置文件htt pd.conf,并使用不同的ScoreBoardFile。

            #ResourceConfig conf/srm.conf
            #AccessConfig conf/access.conf
            這兩個(gè)參數(shù)ResourceConfig和AccessConfig,就用于和使用 srm.conf 和 access.conf 設(shè)置文件的老版本Apache兼容。如果沒有兼容的需要,可以將對(duì)應(yīng)的設(shè)置文件指定為/dev/null,這將表示不存在其他設(shè)置文件,而僅使用 httpd.conf 一個(gè)文件來保存所有的設(shè)置選項(xiàng)。

            Timeout 300
            Timeout定義客戶程序和服務(wù)器連接的超時(shí)間隔,超過這個(gè)時(shí)間間隔(秒)后服務(wù)器將斷開與客戶機(jī)的連接。

            KeepAlive On
            在HTTP 1.0中,一次連接只能作傳輸一次HTTP請(qǐng)求,而KeepAlive參數(shù)用于支持HTTP 1.1版本的一次連接、多次傳輸功能,這樣就可以在一次連接中傳遞多個(gè)HTTP請(qǐng)求。雖然只有較新的瀏覽器才支持這個(gè)功能,但還是打開使用這個(gè)選項(xiàng)。

            MaxKeepAliveRequests 100
            MaxKeepAliveRequests為一次連接可以進(jìn)行的HTTP請(qǐng)求的最大請(qǐng)求次數(shù)。將
          其值設(shè)為0將支持在一次連接內(nèi)進(jìn)行無限次的傳輸請(qǐng)求。事實(shí)上沒有客戶程序在一次連接中請(qǐng)求太多的頁(yè)面,通常達(dá)不到這個(gè)上限就完成連接了。

            KeepAliveTimeout 15
            KeepAliveTimeout測(cè)試一次連接中的多次請(qǐng)求傳輸之間的時(shí)間,如果服務(wù)器
          已經(jīng)完成了一次請(qǐng)求,但一直沒有接收到客戶程序的下一次請(qǐng)求,在間隔超過了
          這個(gè)參數(shù)設(shè)置的值之后,服務(wù)器就斷開連接。

            MinSpareServers 5MaxSpareServers 10
            在使用子進(jìn)程處理HTTP請(qǐng)求的Web服務(wù)器上,由于要首先生成子進(jìn)程才能處理客戶的請(qǐng)求,因此反應(yīng)時(shí)間就有一點(diǎn)延遲。但是,Apache服務(wù)器使用了一個(gè)特殊技術(shù)來擺脫這個(gè)問題,這就是預(yù)先生成多個(gè)空余的子進(jìn)程駐留在系統(tǒng)中,一旦有請(qǐng)求出現(xiàn),就立即使用這些空余的子進(jìn)程進(jìn)行處理,這樣就不存在生成子進(jìn)程造成的延遲了。在運(yùn)行中隨著客戶請(qǐng)求的增多,啟動(dòng)的子進(jìn)程會(huì)隨之增多,但這些服務(wù)器副本在處理完一次HTTP請(qǐng)求之后并不立即退出,而是停留在計(jì)算機(jī)中等待下次請(qǐng)求。但是空余的子進(jìn)程副本不能光增加不減少,太多的空余子進(jìn)程沒有處理任務(wù),也占用服務(wù)器的處理能力,因此也要限制空余副本的數(shù)量,使其保持一個(gè)合適的數(shù)量,使得既能及時(shí)回應(yīng)客戶請(qǐng)求,又能減少不必要的進(jìn)程數(shù)量。
            因此就可以使用參數(shù)MinSpareServers來設(shè)置最少的空余子進(jìn)程數(shù)量, 以及
          使用參數(shù)MaxSpareServers 來限制最多的空閑子進(jìn)程數(shù)量,多余的服務(wù)器進(jìn)程副
          本就會(huì)退出。根據(jù)服務(wù)器的實(shí)際情況來進(jìn)行設(shè)置,如果服務(wù)器性能較高,并且也
          被頻繁訪問,就應(yīng)該增大這兩個(gè)參數(shù)的設(shè)置。對(duì)于高負(fù)載的專業(yè)網(wǎng)站,這兩個(gè)值
          應(yīng)該大致相同,并且等同于系統(tǒng)支持的最多服務(wù)器副本數(shù)量,也減少不必要的副
          本退出。

            StartServers 5
            StartServers參數(shù)就是用來設(shè)置httpd啟動(dòng)時(shí)啟動(dòng)的子進(jìn)程副本數(shù)量,這個(gè)參數(shù)與上面定義的MinSpareServers和 MaxSpareServers參數(shù)相關(guān),都是用于啟動(dòng)空閑子進(jìn)程以提高服務(wù)器的反應(yīng)速度的。這個(gè)參數(shù)應(yīng)該設(shè)置為前兩個(gè)值之間的一個(gè)數(shù)值,小于 MinSpareServers和大于MaxS pareServers都沒有意義。

            MaxClients 150
            在另一方面,服務(wù)器的能力畢竟是有限的,不可能同時(shí)處理無限多的連接請(qǐng)
          求,因此參數(shù)Maxclient s就用于規(guī)定服務(wù)器支持的最多并發(fā)訪問的客戶數(shù),如果這個(gè)值設(shè)置得過大,系統(tǒng)在繁忙時(shí)不得不在過多的進(jìn)程之間進(jìn)行切換來為太多的客戶進(jìn)行服務(wù),這樣對(duì)每個(gè)客戶的反應(yīng)就會(huì)減慢,并降低了整體的效率。如果這個(gè)值設(shè)置的較小,那么系統(tǒng)繁忙時(shí)就會(huì)拒絕一些客戶的連接請(qǐng)求。當(dāng)服務(wù)器性能較高時(shí),就可以適當(dāng)增加這個(gè)值的設(shè)置。對(duì)于專業(yè)網(wǎng)站,應(yīng)該使用提高服務(wù)器效率的策略,因此這個(gè)參數(shù)不能超過硬件本身的限制,如果頻繁出現(xiàn)拒絕訪問現(xiàn)象,就說明需要升級(jí)服務(wù)器硬件了。對(duì)于非專業(yè)網(wǎng)站,不太在意對(duì)客戶瀏覽器的反應(yīng)速度,或者認(rèn)為反應(yīng)速度較慢也比拒絕連接好,就也可以略微超過硬件條件來設(shè)置這個(gè)參數(shù)。
            這個(gè)參數(shù)限制了MinSpareServers和MaxSpareServers的設(shè)置,它們不應(yīng)該大
          于這個(gè)參數(shù)的設(shè)置。

            MaxRequestsPerChild 30
            使用子進(jìn)程的方式提供服務(wù)的Web服務(wù),常用的方式是一個(gè)子進(jìn)程為一次連接服務(wù),這樣造成的問題就是每次連接都需要生成、退出子進(jìn)程的系統(tǒng)操作,使得這些額外的處理過程占據(jù)了計(jì)算機(jī)的大量處理能力。因此最好的方式是一個(gè)子進(jìn)程可以為多次連接請(qǐng)求服務(wù),這樣就不需要這些生成、退出進(jìn)程的系統(tǒng)消耗, Apache就采用了這樣的方式,一次連接結(jié)束后,子進(jìn)程并不退出,而是停留在系統(tǒng)中等待下一次服務(wù)請(qǐng)求,這樣就極大的提高了性能。
            但由于在處理過程中子進(jìn)程要不斷的申請(qǐng)和釋放內(nèi)存,次數(shù)多了就會(huì)造成一
          些內(nèi)存垃圾,就會(huì)影響系統(tǒng)的穩(wěn)定性,并且影響系統(tǒng)資源的有效利用。因此在一個(gè)副本處理過一定次數(shù)的請(qǐng)求之后,就可以讓這個(gè)子進(jìn)程副本退出,再?gòu)脑嫉?br />httpd進(jìn)程中重新復(fù)制一個(gè)干凈的副本,這樣就能提高系統(tǒng)的穩(wěn)定性。這樣,每
          個(gè)子進(jìn)程處理服務(wù)請(qǐng)求次數(shù)由MaxRe questPerChild定義。 缺省的設(shè)置值為30,
          這個(gè)值對(duì)于具備高穩(wěn)定性特點(diǎn)的Linux系統(tǒng)來講是過于保守的設(shè)置,可以設(shè)置為1000甚至更高,設(shè)置為0支持每個(gè)副本進(jìn)行無限次的服務(wù)處理。

            #Listen 3000
            #Listen 12.34.56.78:80
            #BindAddress *
            Listen參數(shù)可以指定服務(wù)器除了監(jiān)視標(biāo)準(zhǔn)的80端口之外,還監(jiān)視其他端口的
          HTTP請(qǐng)求。由于FreeBSD系統(tǒng)可以同時(shí)擁有多個(gè)IP地址,因此也可以指定服務(wù)器只聽取對(duì)某個(gè)BindAddress< /B>的IP地址的HTTP請(qǐng)求。如果沒有配置這一項(xiàng),則服務(wù)器會(huì)回應(yīng)對(duì)所有IP的請(qǐng)求。
            即使使用了BindAddress參數(shù),使得服務(wù)器只回應(yīng)對(duì)一個(gè)IP地址的請(qǐng)求,但是通過使用擴(kuò)展的Listen參數(shù),仍然可以讓HTTP守護(hù)進(jìn)程回應(yīng)對(duì)其他IP地址的請(qǐng)求。此時(shí)Listen參數(shù)的用法與上面的第二個(gè)例子相同。這種比較復(fù)雜的用法主要用于設(shè)置虛擬主機(jī)。此后可以用 VirtualHost參數(shù)定義對(duì)不同IP的虛擬主機(jī),然而這種用法是較早的HTTP 1.0標(biāo)準(zhǔn)中設(shè)置虛擬主機(jī)的方法,每針對(duì)一個(gè)虛擬主機(jī)就需要一個(gè)IP地址,實(shí)際上用處并不大。在HTTP 1.1中,增加了對(duì)單IP地址多域名的虛擬主機(jī)的支持,使得虛擬主機(jī)的設(shè)置具備更大的意義。

          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服務(wù)器的一個(gè)重要特性就是其模塊化的結(jié)構(gòu),這不但表現(xiàn)為其能在編
          譯時(shí)能通過新的模塊加入新的功能,還表現(xiàn)為其模塊可以動(dòng)態(tài)加載入http服務(wù)程
          序中,而不必載入不需要的模塊。使用Apache的動(dòng)態(tài)加載模塊只需要設(shè)置好Load Module和AddModule參數(shù)就可以了,這種特性就是Apache的 DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一個(gè)簡(jiǎn)單的事情,不適當(dāng)?shù)母膭?dòng)這里的設(shè)置就可能造成服務(wù)器不能正常啟動(dòng)。因此如果不是要增加或減少服務(wù)器提供的功能,就不要改動(dòng)這里的設(shè)置。

            上面這些列表就顯示了Linux下的缺省Apache服務(wù)器支持的模塊,事實(shí)上很
          多模塊是沒有必要的,不必要模塊不會(huì)被載入內(nèi)存。模塊可以靜態(tài)連接到Apache 服務(wù)器內(nèi)部,也可以這樣動(dòng)態(tài)加載,將Apache的特性都編譯成動(dòng)態(tài)可加載模塊是該P(yáng)ort的做法,而不是Apache的缺省做法,這樣就以犧牲很小的性能的同時(shí),帶來極大的靈活性。

            因而動(dòng)態(tài)可加載的能力還是對(duì)性能有輕微的影響,因此可以重新編譯Apache,將自己所需要的功能編譯進(jìn)Apache 服務(wù)器內(nèi)部,可以讓系統(tǒng)顯得更為干凈,效率也有輕微的提高。通常僅僅為了這一個(gè)目的就重新編譯Apache是沒有必要的,如果需要增加其他特性而重新編譯 Apache,不妨在增加其他模塊的同時(shí)將所有的模塊都靜態(tài)連接入Apache 服務(wù)器。有的使用者更喜歡動(dòng)態(tài)加載模塊,那么也不妨全部都使用動(dòng)態(tài)加載模塊。

            這些模塊都被放置到/usr/local/apache/libexec/目錄下,每個(gè)模塊對(duì)應(yīng)Apache服務(wù)器的一個(gè)特性。詳細(xì)解釋每個(gè)模塊的功能需要相當(dāng)多的篇幅,其中比較重要的特性將在后面相應(yīng)的地方中進(jìn)行解釋,而具體每個(gè)模塊的功能及用法就需要查看Apache的文檔。

            #ExtendedStatus On
            Apache服務(wù)器可以通過特殊的HTTP請(qǐng)求,來報(bào)告自身的運(yùn)行狀態(tài),打開這個(gè)
          ExtendedStatus 參數(shù)可以讓服務(wù)器報(bào)告更全面的運(yùn)行狀態(tài)信息。


          主服務(wù)器設(shè)置

            Apache服務(wù)器需要各種設(shè)置,以定義自己使用各種參數(shù)以提供Web服務(wù)。對(duì)于使用虛擬主機(jī)的情況,除了在虛擬主機(jī)的定義項(xiàng)中覆蓋的設(shè)置之外(有的設(shè)置必須重新定義),這里的設(shè)置也是虛擬主機(jī)的缺省設(shè)置。

            Port 80
            Port定義了Standalone模式下httpd守護(hù)進(jìn)程使用的端口,標(biāo)準(zhǔn)端口是80。這個(gè)選項(xiàng)只對(duì)于以獨(dú)立方式啟動(dòng)的服務(wù)器才有效,對(duì)于以inetd方式啟動(dòng)的服務(wù)器則在inetd.conf中定義使用哪個(gè)端口。

            在Unix下使用80端口需要root權(quán)限,一些管理員為了安全的原因,認(rèn)為 httpd 服務(wù)器不可能沒有安全漏洞,因而更愿意使用普通用戶的權(quán)限來啟動(dòng)服務(wù)器,這樣就不能使用80端口及其他小于1024的端口,而必須使用大于 1024的端口來啟動(dòng)httpd,一般情況下8000或8080也是常用的端口。而Apache httpd服務(wù)器本身可以在以root權(quán)限打開80端口后再改變?yōu)槠胀ㄓ脩羯矸葸M(jìn)行運(yùn)行,這樣就減少了危險(xiǎn)性,因而就不需要考慮這個(gè)安全問題。但是如果普通用戶也想安裝配置自己的WWW服務(wù)器,那么就不得不使用大于1024的端口。

            User nobody
            Group nogroup
            User和Group配置是Apache的安全保證,Apache在打開端口之后,就將其本身設(shè)置為這兩個(gè)選項(xiàng)設(shè)置的用戶和組權(quán)限進(jìn)行運(yùn)行,這樣就降低了服務(wù)器的危險(xiǎn)性。這個(gè)選項(xiàng)也只用于 Standalone模式,inetd模式在inetd.conf中指定運(yùn)行Apache的用戶。由于服務(wù)器必須執(zhí)行改變身份的setuid()操作,因此初始進(jìn)程應(yīng)該具備root權(quán)限,如果是使用非root用戶來啟動(dòng)Aapche,這個(gè)配置就不會(huì)發(fā)揮作用。
            缺省設(shè)置為nobody和nogroup,這個(gè)用戶和組在系統(tǒng)中不擁有文件,保證了服務(wù)器本身和由它啟動(dòng)的CGI 進(jìn)程沒有權(quán)限更改文件系統(tǒng)。在某些情況下,例如為了運(yùn)行CGI與Unix交互,也需要讓服務(wù)器來訪問服務(wù)器上的文件,如果仍然使用nobody和 nogroup,那么系統(tǒng)中將會(huì)出現(xiàn)屬于nobody的文件,這對(duì)于系統(tǒng)安全是不利的,因?yàn)槠渌绦蛞矔?huì)以nobody和nogroup的權(quán)限執(zhí)行某些操作,就有可能訪問這些nobody擁有的文件,造成安全問題。一般情況下要為Web服務(wù)設(shè)定一個(gè)特定的用戶和組,同時(shí)在這里更改用戶和組設(shè)置。

            ServerAdmin you@your.address
            配置文件中應(yīng)該改變的也許只有ServerAdmin,這一項(xiàng)用于配置WWW服務(wù)器的管理員的email地址,這將在HTTP服務(wù)出現(xiàn)錯(cuò)誤的條件下返回給瀏覽器,以便讓W(xué)eb使用者和管理員聯(lián)系,報(bào)告錯(cuò)誤。習(xí)慣上使用服務(wù)器上的webmaster作為WWW服務(wù)器的管理員,通過郵件服務(wù)器的別名機(jī)制,將發(fā)送到webmaster 的電子郵件發(fā)送給真正的Web管理員。

            #ServerName new.host.name
            缺省情況下,并不需要指定這個(gè)ServerName參數(shù),服務(wù)器將自動(dòng)通過名字解
          析過程來獲得自己的名字,但如果服務(wù)器的名字解析有問題(通常為反向解析不
          正確),或者沒有正式的DNS名字,也可以在這里指定IP地址。當(dāng)ServerName設(shè)
          置不正確的時(shí)候,服務(wù)器不能正常啟動(dòng)。
            通常一個(gè)Web服務(wù)器可以具有多個(gè)名字,客戶瀏覽器可以使用所有這些名字或IP地址來訪問這臺(tái)服務(wù)器,但在沒有定義虛擬主機(jī)的情況下,服務(wù)器總是以自己的正式名字回應(yīng)瀏覽器。ServerName就定義了Web服務(wù)器自己承認(rèn)的正式名字,例如一臺(tái)服務(wù)器名字(在DNS中定義了A類型)為 exmaple.org.cn,同時(shí)為了方便記憶還定義了一個(gè)別名(CNAME記錄)為www.exmaple.org.cn,那么Apache自動(dòng)解析得到的名字就為example.org.cn,這樣不管客戶瀏覽器使用哪個(gè)名字發(fā)送請(qǐng)求,服務(wù)器總是告訴客戶程序自己為 example.org.cn。雖然這一般并不會(huì)造成什么問題,但是考慮到某一天服務(wù)器可能遷移到其他計(jì)算機(jī)上,而只想通過更改DNS中的www別名配置就完成遷移任務(wù),所以不想讓客戶在其書簽中使用 Linux 記錄下這個(gè)服務(wù)器的地址,就必須使用ServerName來重新指定服務(wù)器的正式名字。

            DocumentRoot "/www/"
            DocumentRoot定義這個(gè)服務(wù)器對(duì)外發(fā)布的超文本文檔存放的路徑,客戶程序請(qǐng)求的UR L就被映射為這個(gè)目錄下的網(wǎng)頁(yè)文件。這個(gè)目錄下的子目錄,以及使用
          符號(hào)連接指出的文件和目錄都能被瀏覽器訪問,只是要在URL上使用同樣的相對(duì)目錄名。

            注意,符號(hào)連接雖然邏輯上位于根文檔目錄之下,但實(shí)際上可以位于計(jì)算機(jī)
          上的任意目錄中,因此可以使客戶程序能訪問那些根文檔目錄之外的目錄,這在
          增加了靈活性的同時(shí)但減少了安全性。Apache在目錄的訪問控制中提供了 FollowSymLinks選項(xiàng)來打開或關(guān)閉支持符號(hào)連接的特性。

          Options FollowSymLinks
          AllowOverride None
            Apache服務(wù)器可以針對(duì)目錄進(jìn)行文檔的訪問控制,然而訪問控制可以通過兩
          種方式來實(shí)現(xiàn),一個(gè)是在設(shè)置文件 httpd.conf(或access.conf)中針對(duì)每個(gè)目
          錄進(jìn)行設(shè)置,另一個(gè)方法是在每個(gè)目錄下設(shè)置訪問控制文件,通常訪問控制文件
          名字為.htaccess。雖然使用這兩個(gè)方式都能用于控制瀏覽器的訪問,然而使用配置文件的方法要求每次改動(dòng)后重新啟動(dòng)httpd守護(hù)進(jìn)程,比較不靈活,因此主要用于配置服務(wù)器系統(tǒng)的整體安全控制策略,而使用每個(gè)目錄下的.htaccess文件設(shè)置具體目錄的訪問控制更為靈活方便。
            Directory語(yǔ)句就是用來定義目錄的訪問限制的,這里可以看出它的標(biāo)準(zhǔn)語(yǔ)法,為一個(gè)目錄定義訪問限制。上例的這個(gè)設(shè)置是針對(duì)系統(tǒng)的根目錄進(jìn)行的,設(shè)置了允許符號(hào)連接的選項(xiàng)FollowSymLinks ,以及使用AllowOverride None表示不允許這個(gè)目錄下的訪問控制文件來改變這里進(jìn)行的配置,這也意味著不用查看這個(gè)目錄下的相應(yīng)訪問控制文件。
            由于Apache對(duì)一個(gè)目錄的訪問控制設(shè)置是能夠被下一級(jí)目錄繼承的,因此對(duì)
          根目錄的設(shè)置將影響到它的下級(jí)目錄。注意由于AllowOverride None的設(shè)置,使
          得Apache服務(wù)器不需要查看根目錄下的訪問控制文件,也不需要查看以下各級(jí)目
          錄下的訪問控制文件,直至httpd.conf(或access.conf )中為某個(gè)目錄指定了
          允許Alloworride,即允許查看訪問控制文件。由于Apache對(duì)目錄訪問控制是采用的繼承方式,如果從根目錄就允許查看訪問控制文件,那么 Apache就必須一級(jí)一級(jí)的查看訪問控制文件,對(duì)系統(tǒng)性能會(huì)造成影響。而缺省關(guān)閉了根目錄的這個(gè)特性,就使得Apache從httpd.conf中具體指定的目錄向下搜尋,減少了搜尋的級(jí)數(shù),增加了系統(tǒng)性能。因此對(duì)于系統(tǒng)根目錄設(shè)置AllowOverride None不但對(duì)于系統(tǒng)安全有幫助,也有益于系統(tǒng)性能。

          Options Indexes FollowSymLinks
          AllowOverride None
          Order allow,deny
          Allow from all
            這里定義的是系統(tǒng)對(duì)外發(fā)布文檔的目錄的訪問設(shè)置,設(shè)置不同的 AllowOverride選項(xiàng),以定義配置文件中的目錄設(shè)置和用戶目錄下的安全控制文件的關(guān)系,而Options選項(xiàng)用于定義該目錄的特性。
            配置文件和每個(gè)目錄下的訪問控制文件都可以設(shè)置訪問限制,設(shè)置文件是由
          管理員設(shè)置的,而每個(gè)目錄下的訪問控制文件是由目錄的屬主設(shè)置的,因此管理
          員可以規(guī)定目錄的屬主是否能覆蓋系統(tǒng)在設(shè)置文件中的設(shè)置,這就需要使用 啊AllowOverride參數(shù)進(jìn)行設(shè)置,通常可以設(shè)置的值為:
          AllowOverride的設(shè)置 對(duì)每個(gè)目錄訪問控制文件作用的影響
          All 缺省值,使訪問控制文件可以覆蓋系統(tǒng)配置
          None 服務(wù)器忽略訪問控制文件的設(shè)置
          Options 允許訪問控制文件中可以使用Options參數(shù)定義目錄的選項(xiàng)
          FileInfo 允許訪問控制文件中可以使用AddType等參數(shù)設(shè)置
          AuthConfig 允許訪問控制文件使用AuthName,AuthType等針對(duì)每個(gè)用戶的認(rèn)證機(jī)制,這使目錄屬主能用口令和用戶名來保護(hù)目錄 Limit 允許對(duì)訪問目錄的客戶機(jī)的IP地址和名字進(jìn)行限制
            每個(gè)目錄具備一定屬性,可以使用Options來控制這個(gè)目錄下的一些訪問特性設(shè)置,以下為常用的特性選項(xiàng):

          Options設(shè)置 服務(wù)器特性設(shè)置
          All 所有的目錄特性都有效,這是缺省狀態(tài)
          None 所有的目錄特性都無效
          FollowSymLinks 允許使用符號(hào)連接,這將使瀏覽器有可能訪問文檔根目錄 (DocumentRoot)之外的文檔 SymLinksIfOwnerMatch 只有符號(hào)連接的目的與符號(hào)連接本身為同一用戶所擁有時(shí),才允許訪問,這個(gè)設(shè)置將增加一些安全性
          ExecCGI 允許這個(gè)目錄下可以執(zhí)行CGI程序 Indexes 允許瀏覽器可以生成這個(gè)目錄下所有文件的索引,使得在這個(gè)目錄下沒有index.html(或其他索引文件)時(shí),能向?yàn)g覽器發(fā)送這個(gè)目錄下的文件列表
           此外,上例中還使用了Order、Allow、Deny等參數(shù),這是Limit語(yǔ)句中用來根據(jù)瀏覽器的域名和 IP地址來控制訪問的一種方式。其中Order定義處理Allow和Deny的順序,而Allow、Deny則針對(duì)名字或IP進(jìn)行訪問控制設(shè)置,上例使用 allowfrom all,表示允許所有的客戶機(jī)訪問這個(gè)目錄,而不進(jìn)行任何限制。

            UserDir public_html
            當(dāng)在一臺(tái)Linux上運(yùn)行Apache服務(wù)器時(shí),這臺(tái)計(jì)算機(jī)上的所有用戶都可以有自己的網(wǎng)頁(yè)路徑,形如 http://example.org.cn/~user,使用波浪符號(hào)?..褂肈ISABLED作 UserDir的參數(shù)即可。

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

            這里可以看到Directory的另一個(gè)用法,即可以通過簡(jiǎn)單的模式匹配方法,針對(duì)分布在不同目錄下的子目錄定義訪問控制權(quán)限。這樣設(shè)置就需要Apache服務(wù)器對(duì)每個(gè)路徑進(jìn)行額外的處理,因此就會(huì)降低服務(wù)器的性能,所以缺省情況并沒有打開這種訪問限制。

            這里可以看到另外一個(gè)語(yǔ)句Limit,Limit語(yǔ)句就是用來針對(duì)具體的請(qǐng)求方法來設(shè)定訪問控制的,其中可以使用GET、POST等各種服務(wù)器支持的請(qǐng)求方法做Lim
          it的參數(shù),來設(shè)定對(duì)不同請(qǐng)求方法的訪問限制。一般可以打開對(duì)GET、POST、 HEAD三種請(qǐng)求方法,而屏蔽其他的請(qǐng)求方法,以增加安全性。Limit語(yǔ)句中,可以用Order 、Allow、Deny,Allow和Deny中可以使用匹配的方法針對(duì)域名和IP進(jìn)行限制,只是對(duì)于域名是從后向前匹配,對(duì)于IP地址則從前向后匹配。

            DirectoryIndex index.html
            很多情況下,URL中并沒有指定文檔的名字,而只是給出了一個(gè)目錄名。那么Apache服務(wù)器就自動(dòng)返回這個(gè)目錄下由DirectoryIndex定義的文件,當(dāng)然可以指定多個(gè)文件名字,系統(tǒng)會(huì)這個(gè)目錄下順序搜索。當(dāng)所有由DirectoryIndex指定的文件都不存在時(shí),Apache服務(wù)器可以根據(jù)系統(tǒng)設(shè)置,生成這個(gè)目錄下的所有文件列表,提供用戶選擇。此時(shí)該目錄的訪問控制選項(xiàng)中的Indexes選項(xiàng)(Options Indexes )必須打開,以使得服務(wù)器能夠生成目錄列表,否則Apache將拒絕訪問。

            AccessFileName .htaccess
            AccessFileName定義每個(gè)目錄下的訪問控制文件的文件名,缺省為.htaccess,可以通過更改這個(gè)文件,來改變不同目錄的訪問控制限制。

          Order allow,deny
          Deny from all
            除了可以針對(duì)目錄進(jìn)行訪問控制之外,還可以根據(jù)文件來設(shè)置訪問控制,這
          就是File語(yǔ)句的任務(wù)。使用File 語(yǔ)句,不管文件處于哪個(gè)目錄,只要名字匹配,就必須接受相應(yīng)的訪問控制。這個(gè)語(yǔ)句對(duì)于系統(tǒng)安全比較重要,例如上例將屏蔽所有的使用者不能訪問.htaccess文件,這樣就避免.htaccess中的關(guān)鍵安全信息不至于被客戶獲取。

            #CacheNegotiatedDocs
            缺省情況下如果代理服務(wù)器和Apache服務(wù)器協(xié)商是否緩存其網(wǎng)頁(yè),Apache給
          予否定的回答,不希望自己的網(wǎng)頁(yè)被代理服務(wù)器緩存。然而這樣就不能有效的利用代理服務(wù)器的優(yōu)勢(shì),因此可以設(shè)置CacheNegotiatieDocs 選項(xiàng), 使得代理服務(wù)器可以對(duì)網(wǎng)頁(yè)進(jìn)行緩存。然而即使不設(shè)置這個(gè)選項(xiàng),有的代理服務(wù)器(或通過調(diào)整設(shè)置)也能對(duì)網(wǎng)頁(yè)進(jìn)行緩存。

            UseCanonicalName On
            打開這個(gè)UseCanonicalName是Web服務(wù)器的標(biāo)準(zhǔn)做法,因?yàn)榭蛻舭l(fā)送的大部分請(qǐng)求都是對(duì)本服務(wù)器的引用,這樣服務(wù)器就能使用 ServerName和Port選項(xiàng)的設(shè)置內(nèi)容構(gòu)建完整的URL,并回應(yīng)客戶,使瀏覽器能得到規(guī)范的URL。如果將這個(gè)參數(shù)設(shè)置為Off,那么 Apache將使用從客戶請(qǐng)求中獲得服務(wù)器的名字和端口值(支持HTTP 1.1的客戶的請(qǐng)求中將會(huì)有這些信息),重新構(gòu)建URL。

            TypesConfig /usr/local/apache/etc/mime.types
            TypeConfig用于設(shè)置保存有不同的MIME類型數(shù)據(jù)的文件名,在Linux下缺省設(shè)置為/usr/local/apache/etc/mime.types。

            DefaultType text/plain
            如果Web服務(wù)器不能決定一個(gè)文檔的缺省類型,這通常表示文檔使用了非標(biāo)準(zhǔn)的后綴,那么服務(wù)器就使用 DefaultType定義的MIME類型將文檔發(fā)送給客戶瀏覽器。這里的設(shè)置為text/plain,這樣設(shè)置的問題是,如果服務(wù)器不能判斷出文檔的 MIME,那么大部分情況下這個(gè)文檔為一個(gè)二進(jìn)制文檔,但使用 text/plain格式發(fā)送回去,瀏覽器將在內(nèi)部打開它而不會(huì)提示保存。因此建議將這個(gè)設(shè)置更改為
          application/octet-stream,這樣瀏覽器將提示用戶進(jìn)行保存。

          MIMEMagicFile /usr/local/apache/etc/magic
            除了從文件的后綴出發(fā)來判斷文件的MIME類型之外,Apache還可以進(jìn)一步分
          析文件的一些特征,來判斷文件的真實(shí)MIME類型。這個(gè)功能是由mod_mime_magic 模塊實(shí)現(xiàn)的,它需要一個(gè)記錄各種MIME類型特征的文件,以進(jìn)行分析判斷。上面的設(shè)置是一個(gè)條件語(yǔ)句,如果載入了這個(gè)模塊,就必須指定相應(yīng)的標(biāo)志文件magic的位置。


          通常連接時(shí),服務(wù)器僅僅可以得到客戶機(jī)的IP地址,如果要想獲得客戶機(jī)的
          主機(jī)名,以進(jìn)行日志記錄和提供給 CGI程序使用,就需要使用這個(gè) HostnameLookups 選項(xiàng),將其設(shè)置為On打開DNS反查功能。但是這將使服務(wù)器對(duì)每次客戶請(qǐng)求都進(jìn)行DNS查詢,增加了系統(tǒng)開銷,使得反應(yīng)變慢,因此缺省設(shè)置為使用Off關(guān)閉此選項(xiàng)。關(guān)閉選項(xiàng)之后,服務(wù)器就不會(huì)獲得客戶機(jī)的主機(jī)名,而只能使用IP地址來記錄客戶。

          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

            這里定義了系統(tǒng)日志的形式,對(duì)于服務(wù)器錯(cuò)誤記錄, 由ErrorLog、 LogLevel 來定義不同的錯(cuò)誤日志文件及其記錄內(nèi)容。
            對(duì)于系統(tǒng)的訪問日志,缺省使用CustomLog參數(shù)定義日志的位置,缺省使用 combined 參數(shù)指定將所有的訪問日志放在一個(gè)文件中,然而也可以將不同種類的訪問日志放在不同的日志記錄文件中,這是通過在 CustomLog中指定不同的記錄類型來完成的。common表示普通的對(duì)單頁(yè)面請(qǐng)求訪問記錄,referer表示每個(gè)頁(yè)面的引用記錄,可以看出一個(gè)頁(yè)面中包含的請(qǐng)求數(shù),agent表示對(duì)客戶機(jī)的類型記錄,顯然可以將現(xiàn)有的combined 定義的設(shè)置行注釋掉,并使用common、referer和agent作為CustomLog的參數(shù),來為不同種類的日志分別指定日志記錄文件。
            顯然,LogFormat是用于定義不同類型的日志進(jìn)行記錄時(shí)使用的格式, 這里
          使用了以%開頭的宏定義,以記錄不同的內(nèi)容。
            如果這些參數(shù)指定的文件使用的是相對(duì)路徑,那么就是相對(duì)于ServerRoot的
          路徑。

            ServerSignature On
            一些情況下,例如當(dāng)客戶請(qǐng)求的網(wǎng)頁(yè)并不存在時(shí),服務(wù)器將產(chǎn)生錯(cuò)誤文檔,
          缺省情況下由于打開了 ServerSignature選項(xiàng),錯(cuò)誤文檔的最后一行將包含服務(wù)器的名字、Apache的版本等信息。有的管理員更傾向于不對(duì)外顯示這些信息,就
          可以將這個(gè)參數(shù)設(shè)置為Off,或者設(shè)置為Email,最后一行將替換為對(duì) ServerAdmin 的Email提示。

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

            Alias參數(shù)用于將URL與服務(wù)器文件系統(tǒng)中的真實(shí)位置進(jìn)行直接映射,一般的
          文檔將在DocumentRoot 中進(jìn)行查詢,然而使用Alias定義的路徑將直接映射到相
          應(yīng)目錄下,而不再到DocumentRoot 下面進(jìn)行查詢。因此Alias可以用來映射一些
          公用文件的路徑,例如保存了各種常用圖標(biāo)的icons路徑。這樣使得除了使用符號(hào)連接之外,文檔根目錄(DocumentRoot)外的目錄也可以通過使用了Alias映射,提供給瀏覽器訪問。
            定義好映射的路徑之后,應(yīng)該需要使用Directory語(yǔ)句設(shè)置訪問限制。

          ScriptAlias /cgi-bin/ "/www/cgi-bin/"
          AllowOverride None
          Options None
          Order allow,deny
          Allow from all
            ScriptAlias也是用于URL路徑的映射,但與Alias的不同在于,ScriptAlias 是用于映射CGI程序的路徑,這個(gè)路徑下的文件都被定義為CGI程序,通過執(zhí)行它們來獲得結(jié)果,而非由服務(wù)器直接返回其內(nèi)容。缺省情況下CGI程序使用 cgi-bin目錄作為虛擬路徑。

            # Redirect old-URI new-URL
            Redirect參數(shù)是用來重寫URL的,當(dāng)瀏覽器訪問服務(wù)器上的一個(gè)已經(jīng)不存在的資源的時(shí)候,服務(wù)器返回給瀏覽器新的URL,告訴瀏覽器從該URL 中獲取資源。這主要用于原來存在于服務(wù)器上的文檔,改變了位置之后,而又希望能使用老URL能訪問到,以保持與以前的URL兼容。

          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

          當(dāng)一個(gè)HTTP請(qǐng)求的URL為一個(gè)目錄的時(shí)候,服務(wù)器返回這個(gè)目錄中的索引文件。但如果一個(gè)目錄中不存在缺省的索引文件,并且該服務(wù)器又許可顯示目錄文件列表的時(shí)候,就會(huì)顯示出這個(gè)目錄中的文件列表,為了使得這個(gè)文件列表能具有可理解性,而不僅僅是一個(gè)簡(jiǎn)單的列表,就需要前面的這些設(shè)置參數(shù)。
            如果使用了IndexOptions FancyIndexing選項(xiàng),可以讓服務(wù)器產(chǎn)生的目錄列
          表中針對(duì)各種不同類型的文檔引用各種圖標(biāo)。而哪種文件使用哪種圖標(biāo),則使用
          下面的 AddIconByEncoding、AddIconByType以及AddIcon來定義,分別依據(jù)MIME 的編碼、類型以及文件的后綴來判斷使用何種圖標(biāo)。如果不能確定文檔使用的圖標(biāo),就使用 DefaultIcon定義的缺省圖標(biāo)。
            同樣,使用AddDescription可以為不同類型的文檔加入不同的描述。并且,
          服務(wù)器還在目錄下,查詢使用ReadmeName和HeaderName定義的文件(自動(dòng)加上 .
          html后綴,如果沒有發(fā)現(xiàn),再使用.txt后綴進(jìn)行搜索),如果發(fā)現(xiàn)了這些文件,
          就在文件列表之前首先顯示這些文件的內(nèi)容,以使得普通目錄列表具備更大的可
          理解性。
            IndexIgnore讓服務(wù)器在列出文件列表時(shí)忽略相應(yīng)的文件, 這里使用模式配
          置的方式定義文件名。

          AddEncoding x-compress Z
          AddEncoding x-gzip gz
            AddEncoding用于告訴一些使用壓縮的MIME類型,這樣可以讓瀏覽器進(jìn)行解壓縮操作。

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

            一個(gè)HTML文檔可以同時(shí)具備多個(gè)語(yǔ)言的版本,如對(duì)于file1.html文檔可以具
          備file1.html.en、file1.html.fr 等不同的版本,每個(gè)語(yǔ)言后綴必須使用 AddLanguage進(jìn)行定義。這樣服務(wù)器可以針對(duì)不同國(guó)家的客戶,通過與瀏覽器進(jìn)行協(xié)商,發(fā)送不同的語(yǔ)言版本。而LanguagePriority 定義不同語(yǔ)言的優(yōu)先級(jí),以便在瀏覽器沒有特殊要求時(shí),按照順序使用不同的語(yǔ)言版本回應(yīng)對(duì)file1.html 的請(qǐng)求。
          這個(gè)國(guó)際化的能力實(shí)際的應(yīng)用并不多。

          #AddType application/x-httpd-php .phtml
          #AddType application/x-httpd-php-source .phps
           AddType參數(shù)可以為特定后綴的文件指定MIME類型,這里的設(shè)置將覆蓋 mime.types中的設(shè)置。

            #AddHandler cgi-script .cgi
            AddHandler是用于指定非靜態(tài)的處理類型,用于定義文檔為一個(gè)非靜態(tài)的文
          檔類型,需要進(jìn)行處理,再向?yàn)g覽器返回處理結(jié)果。例如上面注釋中的設(shè)置是將以.cgi結(jié)尾的文件設(shè)置為cgi-script類型,那么服務(wù)器將啟動(dòng)這個(gè) CGI程序以進(jìn)行處理。如果需要在前面AliasScript定義的路徑之外執(zhí)行CGI程序,就需要使用這個(gè)參數(shù)進(jìn)行設(shè)置,此后以.cgi結(jié)尾的文件將被當(dāng)作CGI程序執(zhí)行。

            在配置文件、這個(gè)目錄中的.htaccess以及其上級(jí)目錄的.htaccess中必須允許執(zhí)行CGI程序,這需要通過Options ExecCGI參數(shù)設(shè)定。

          #AddType text/html .shtml
          #AddHandler server-parsed .shtml
            另外一種動(dòng)態(tài)進(jìn)行處理的類型為server-parsed,由服務(wù)器自身預(yù)先分析網(wǎng)頁(yè)內(nèi)的標(biāo)記,將標(biāo)記更改為正確的HTML標(biāo)識(shí)。由于server- parsed需要對(duì)text/html 類型的文檔進(jìn)行處理,因此首先定義了對(duì)應(yīng)的.shtml為text/html類型。
            然而要支持SSI,還要首先要在配置文件(或.htaccess)中使用Options Includes允許該目錄下的文檔可以為SSI類型,或使用Options IncludesNOExec讓執(zhí)行普通的SSI標(biāo)志,但不執(zhí)行其中引用的外部程序。

            另一種指定server-parsed類型的方式為使用XBitBack設(shè)置選項(xiàng),如果將 XBitHack設(shè)置為On,服務(wù)器將檢查所有text/html類型的文檔(包括.html后綴的文檔),如果發(fā)現(xiàn)文件屬性具備執(zhí)行位 “x",則服務(wù)器就認(rèn)為它是服務(wù)器分析文檔,需要服務(wù)器進(jìn)行處理。推薦使用AddHandler進(jìn)行設(shè)置,而將XBitBack 設(shè)置為Off,因?yàn)槭褂肵BitBack將對(duì)所有的HTML文檔都執(zhí)行額外的檢查,降低了效率。

          #AddHandler send-as-is asis
          #AddHandler imap-file map
          #AddHandler type-map var
          上面被注釋的AddHandler用于支持Apache服務(wù)器的asis、map和var處理能力

          # Action media/type /cgi-script/location
          # Action handler-name /cgi-script/location
           因?yàn)锳pache內(nèi)部提供的處理功能有限,因此可以使用Action為服務(wù)器定義外
          部程序作為可處理的動(dòng)態(tài)文檔類型,這些外部程序與標(biāo)準(zhǔn)CGI程序相同,都是對(duì)輸入的數(shù)據(jù)處理之后,再輸出不同MIME類型的結(jié)果。例如要定義一個(gè)對(duì)特殊后綴wri都先執(zhí)行wri2txt進(jìn)行處理操作,再返回結(jié)果的操作,可以使用:

          Action windows-writer /bin/wri2txt
          AddHandler windows-writer wri
           更進(jìn)一步,可以直接使用Action定義對(duì)某個(gè)MIME類型預(yù)先進(jìn)行處理操作,這
          需要例子中第一種格式的Action 參數(shù)設(shè)置方式。這樣設(shè)置方式就不再需要額外的AddHandler用來將處理操作與文件后綴聯(lián)系起來,而是使用Action直接處理MIME類型的文件。但如果文檔后綴沒有正式的MIME類型,還需要先定義一個(gè)MIME類型。

          #MetaDir .web
          #MetaSuffix .meta
           Meta信息是在文檔發(fā)送給客戶之前,預(yù)先發(fā)送給客戶瀏覽器一些數(shù)據(jù),因此
          瀏覽器可以通過HEAD請(qǐng)求來訪問這些Meta信息而不必真正通過GET來返回全部文檔數(shù)據(jù)。服務(wù)器通常發(fā)送給瀏覽器的是一些標(biāo)準(zhǔn)的HTTP頭信息,如果要想增加額外的信息,就需要使用MetaDir來定義Meta數(shù)據(jù)存放的目錄, 而MetaS uffix用于指定包含Meta數(shù)據(jù)的文件后綴。

          #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
            如果客戶請(qǐng)求的網(wǎng)頁(yè)不存在,或者沒有訪問權(quán)限等情況發(fā)生時(shí),服務(wù)器將產(chǎn)
          生一個(gè)錯(cuò)誤代碼,同時(shí)也將回應(yīng)客戶瀏覽器一個(gè)標(biāo)識(shí)錯(cuò)誤的網(wǎng)頁(yè)。
          ErrorDocument就用于設(shè)置當(dāng)出現(xiàn)哪個(gè)錯(cuò)誤時(shí)應(yīng)該回應(yīng)客戶瀏覽器那些內(nèi)容,ErrorDocument的第一個(gè)參數(shù)為錯(cuò)誤的序號(hào),第二個(gè)參數(shù)為回應(yīng)的數(shù)據(jù),可以為簡(jiǎn)單的文本,本地網(wǎng)頁(yè),本地CGI程序,以及遠(yuǎn)程主機(jī)上的網(wǎng)頁(yè)。

          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命令為特定的客戶程序,設(shè)置特殊的參數(shù),以保證對(duì)老版本瀏
          覽器的兼容性,并支持新瀏覽器的新特性。

          #
          # 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
          #

            用于設(shè)置訪問控制的設(shè)置主要是針對(duì)目錄和文件進(jìn)行設(shè)置的,然而也可以針
          對(duì)不同的URL進(jìn)行訪問控制的設(shè)置,這樣就不必?fù)?dān)心ScriptAlias、Alias是否將路徑設(shè)置到了受控制的目錄之外了。針對(duì)URL進(jìn)行控制的語(yǔ)句為 Location語(yǔ)句,這樣不但能對(duì)服務(wù)器上的文件、CGI提供保護(hù),此外,它還能保護(hù)不能找到對(duì)應(yīng)文件,而是由服務(wù)器本身提供的特殊功能URL。 http://servername/server-status用于報(bào)告當(dāng)?..器的狀態(tài),http: //servername/server-info用于報(bào)告Apache 服務(wù)器的統(tǒng)計(jì)信息。與此相關(guān)的設(shè)置還有ExtendedStatus參數(shù),可以讓服務(wù)器輸出更詳細(xì)的的報(bào)告。

          #
          #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語(yǔ)句進(jìn)行判斷,如果存在 mod_proxy模塊,就使用ProxyRequests打開代理支持。此后的Directory用于設(shè)置對(duì)Proxy功能的訪問權(quán)限設(shè)置,以及用于設(shè)置緩沖的各個(gè)參數(shù)設(shè)置。

          虛擬主機(jī)
          #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
          #

          #

            缺省設(shè)置文件中的這些內(nèi)容是用于設(shè)置命名基礎(chǔ)的虛擬主機(jī)服務(wù)器時(shí)使用。
          其中NameVirtualHost 來指定虛擬主機(jī)使用的IP地址,這個(gè)IP地址將對(duì)應(yīng)多個(gè) DNS名字,如果Apache使用了Listen 參數(shù)控制了多個(gè)端口,那么就可以在這里加上端口號(hào)以進(jìn)一步進(jìn)行區(qū)分對(duì)不同端口的不同連接請(qǐng)求。此后,使用 VirtualHost 語(yǔ)句,使用NameVirtualHost指定的IP地址作參數(shù),對(duì)每個(gè)名字都定義對(duì)應(yīng)的虛擬主機(jī)設(shè)置。
            虛擬主機(jī)是在一臺(tái)Web服務(wù)器上,可以為多個(gè)單獨(dú)域名提供Web服務(wù),并且每個(gè)域名都完全獨(dú)立,包括具有完全獨(dú)立的文檔目錄結(jié)構(gòu)及設(shè)置,這樣域名之間完全獨(dú)立,不但使用每個(gè)域名訪問到的內(nèi)容完全獨(dú)立,并且使用另一個(gè)域名無法訪
          問其他域名提供的網(wǎng)頁(yè)內(nèi)容。
            虛擬主機(jī)的概念對(duì)于ISP來講非常有用,因?yàn)殡m然一個(gè)組織可以將自己的網(wǎng)頁(yè)掛在具備其他域名的服務(wù)器上的下級(jí)往址上,但使用獨(dú)立的域名和根網(wǎng)址更為正式,易為眾人接受。傳統(tǒng)上,必須自己設(shè)立一臺(tái)服務(wù)器才能達(dá)到單獨(dú)域名的目的,然而這需要維護(hù)一個(gè)單獨(dú)的服務(wù)器,很多小單位缺乏足夠的維護(hù)能力,更為合適的方式是租用別人維護(hù)的服務(wù)器。ISP也沒有必要為一個(gè)機(jī)構(gòu)提供一個(gè)單獨(dú)的服務(wù)器,完全可以使用虛擬主機(jī)能力,使服務(wù)器為多個(gè)域名提供Web服務(wù),而且不同的服務(wù)互不干擾,對(duì)外就表現(xiàn)為多個(gè)不同的服務(wù)器。
            有兩種設(shè)定虛擬主機(jī)的方式,一種是基于HTTP 1.0標(biāo)準(zhǔn),需要一個(gè)具備多IP
          地址的服務(wù)器,再配置DNS 服務(wù)器,給每個(gè)IP地址以不同的域名,最后才能配置Apache的配置文件,使服務(wù)器對(duì)不同域名返回不同的Web文檔。由于這需要使用額外的IP地址,對(duì)每個(gè)要提供服務(wù)的域名都要使用單獨(dú)的IP地址,因此這種方式實(shí)現(xiàn)起來問題較多。
            可以在一個(gè)網(wǎng)絡(luò)界面上綁定多個(gè)IP地址,Linux下需要使用ifconfig的 alias參數(shù)來進(jìn)行這個(gè)配置,但此時(shí)會(huì)影響網(wǎng)絡(luò)性能。
            HTTP 1.1標(biāo)準(zhǔn)在協(xié)議中規(guī)定了對(duì)瀏覽器和服務(wù)器通信時(shí),服務(wù)器能夠跟蹤瀏
          覽器請(qǐng)求的是哪個(gè)主機(jī)名字。因此可以利用這個(gè)新特性,使用更輕松的方式設(shè)定
          虛擬主機(jī)。這種方式不需要額外的IP地址,但需要新版本的瀏覽器支持。這種方
          式已經(jīng)成為建立虛擬主機(jī)的標(biāo)準(zhǔn)方式。
            要建立非IP基礎(chǔ)的虛擬主機(jī),多個(gè)域名是不可少的配置,因?yàn)槊總€(gè)域名就對(duì)
          應(yīng)一個(gè)要服務(wù)的虛擬主機(jī)。因此需要更改DNS服務(wù)器的配置,為服務(wù)器增加多個(gè)C NAME選項(xiàng),如:

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

           基本的設(shè)置選項(xiàng)都是為了linux主機(jī)設(shè)定的,如果要為vhost1和vhost2設(shè)定
          虛擬主機(jī),就要使用VirtualHost語(yǔ)句定義不同的選項(xiàng),在語(yǔ)句中可以使用配置文件前面中的大部分選項(xiàng),而可以重新定義幾乎所有的針對(duì)服務(wù)器的設(shè)置。

          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

            這里需要注意的是,VirtualHost的參數(shù)地址一定要和NameVirtualHost定義
          的地址相一致,必須保證所有的值嚴(yán)格一致,Apache服務(wù)器才承認(rèn)這些定義是為這個(gè)IP地址定義的虛擬主機(jī)。
            此外,定義過NameVirtualHost之后,那么對(duì)這個(gè)IP地址的訪問都被區(qū)分不同的虛擬主機(jī)進(jìn)行處理,而對(duì)其他IP地址的訪問,例如127.0.0.1,才應(yīng)用前面定義的缺省選項(xiàng)。

          ?

          posted @ 2007-01-25 15:22 Q系列類、方法、變量…… 閱讀(404) | 評(píng)論 (0)編輯 收藏
          http://pic1.blueidea.com/logo/logo.htm
          posted @ 2007-01-25 15:03 Q系列類、方法、變量…… 閱讀(440) | 評(píng)論 (0)編輯 收藏
          很多設(shè)計(jì)師認(rèn)為做好了企業(yè)網(wǎng)站就一定能夠做好行業(yè)網(wǎng)站的設(shè)計(jì),其實(shí)對(duì)設(shè)計(jì)來說行業(yè)網(wǎng)站和企業(yè)網(wǎng)站的設(shè)計(jì)截然不同,對(duì)整個(gè)網(wǎng)站的創(chuàng)意、風(fēng)格、整體框架布局、文字編排、圖片的合理利用,空間的合理安排上面等…有著許多諸多的要求,需要考慮的面更廣,面對(duì)的問題也會(huì)更多。對(duì)于一名優(yōu)秀的網(wǎng)站設(shè)計(jì)師來說不能絕不能放過任何一點(diǎn)小細(xì)節(jié),本篇文章簡(jiǎn)述的是設(shè)計(jì)師在做行業(yè)網(wǎng)站時(shí)所需考慮的一些問題。

          一、網(wǎng)站風(fēng)格/創(chuàng)意
            風(fēng)格(style)是抽象的。是指站點(diǎn)的整體形象給瀏覽者的綜合感受。整體形象包括站點(diǎn)的版面布局,色彩,字體,瀏覽方式等…。如:我們覺得迪斯尼是生動(dòng)活潑的而IBM則是專業(yè)嚴(yán)肅的。每一個(gè)網(wǎng)站都會(huì)給人們留下的不同感受。這里我們需要做到的是根據(jù)網(wǎng)站的定位做出網(wǎng)站特有的風(fēng)格。除此我們還需要在風(fēng)格同一上需要把握一下,其實(shí)這個(gè)風(fēng)格的統(tǒng)一和傳統(tǒng)的印刷出版物沒什么區(qū)別。你網(wǎng)頁(yè)上所有的圖像、文字,包括像背景顏色、區(qū)分線、字體、標(biāo)題、注腳什么的,都要統(tǒng)一風(fēng)格,貫穿全站。這樣子用戶看起來舒服、順暢,會(huì)對(duì)你的網(wǎng)站留下一個(gè)“很專業(yè)”的印象。而企業(yè)網(wǎng)站設(shè)計(jì)師往往就缺乏這一點(diǎn),沒有全局意思。

            創(chuàng)意,所謂創(chuàng)意就是不拘一格?某些設(shè)計(jì)師在做創(chuàng)意的時(shí)候大費(fèi)周章,做出來確實(shí)不可否認(rèn)很有創(chuàng)意、很別致,但往往對(duì)于行業(yè)網(wǎng)站的客戶為什么不能接受呢?此時(shí)不要太責(zé)怪客戶的不識(shí)貨,應(yīng)該反思,抓住客戶的需求。其實(shí)做行業(yè)網(wǎng)站不需要很多大的創(chuàng)意,也不要浪費(fèi)過多的時(shí)間去追求如何個(gè)性、如何好看,我們只需要一點(diǎn)小小的創(chuàng)意貫穿全站,也許會(huì)使網(wǎng)站更生動(dòng)更具有吸引力、更有思想,比如中國(guó)現(xiàn)車交易網(wǎng)(http://www.chinaxcjy.com/)就是一個(gè)很好的案例,它把車的外形融入到網(wǎng)站中,使它脫穎而出。

          二、網(wǎng)站LOGO
            Logo 顧名思義就是站點(diǎn)的標(biāo)志圖案,logo最重要的就是用圖形化的方式傳遞網(wǎng)站的定位和經(jīng)營(yíng)理念、同時(shí)便于人們識(shí)別。網(wǎng)站logo的設(shè)計(jì)過程中一般有以下三種思路:1.直接以網(wǎng)站網(wǎng)址作為logo。2.根據(jù)網(wǎng)站提供的產(chǎn)品/服務(wù)特點(diǎn)展開logo設(shè)計(jì)。3.以傳遞網(wǎng)站運(yùn)營(yíng)商的經(jīng)營(yíng)理念為特色。如:全球五金網(wǎng) logo(www.Wjw.cn)

          三、視覺流程
            人們?cè)陂喿x某種信息時(shí),視覺總有一種自然的流動(dòng)習(xí)慣,先看什么,后看什么,再看什么。在心理學(xué)的研究表明,一般的瀏覽習(xí)慣是從上到下、從左到右,在一個(gè)平面上,上松下穩(wěn)而壓抑。同樣,平面的左松右穩(wěn)。所以平面的視覺影響力上方強(qiáng)于下方,左側(cè)強(qiáng)于右側(cè)。這樣平面的上部和中上部被稱為“最佳視域”,也就是最優(yōu)選的地方。在網(wǎng)頁(yè)設(shè)計(jì)中一些突出或推薦的信息通常都放在這個(gè)位置。當(dāng)然這種視覺流程只是一種感覺并非一種固定的公式,只要符合人們的心理順序和邏輯順序,就可以更為靈活地運(yùn)用,在網(wǎng)頁(yè)設(shè)計(jì)中,靈活而合理地運(yùn)用直接影響到傳達(dá)信息的準(zhǔn)確與有效性。

          四、網(wǎng)頁(yè)框架與布局
           網(wǎng)頁(yè)布局大致可分為“國(guó)”字型、拐角型、“T”字型、“L”字型、綜合框架型、Flash 型、變化型,在這里就不做一一論述了。其實(shí)在我們?cè)谧鲈O(shè)計(jì)的時(shí)候并沒有過多的去考慮什么形式,比如我們?cè)谝粡埣埧吹揭粋€(gè)圓形的東西,很容易可以聯(lián)想到它像太陽(yáng),而有些人則聯(lián)想到月亮等等…這都是一種形式比喻,最重要的是抓住客戶的需求,把握網(wǎng)站的定位做處合理的框架布局。

          1. 分辨率
          網(wǎng)頁(yè)的整體寬度可分為三種設(shè)置形式:百分比、象素、象素+百分比。通常在網(wǎng)站建設(shè)中以象素形式最為常用,行業(yè)網(wǎng)站也不列外。我們?cè)谠O(shè)計(jì)網(wǎng)頁(yè)的時(shí)候必定會(huì)考慮到分辨率的問題,科技發(fā)展到現(xiàn)在我們通常用的是1024*768和800*600的分辨率,現(xiàn)在網(wǎng)絡(luò)上很多都是用到778個(gè)象素的寬度,在800的分辨率下面往往使整個(gè)網(wǎng)頁(yè)很壓抑,有種不透氣的感覺,其實(shí)這個(gè)寬度是指在800*600的分辨率上網(wǎng)頁(yè)的最寬寬度,不代表最佳視覺,不妨試試760~770的象素,不管在1024還是800的分辨率下都可以達(dá)到較佳的視覺效果。

          2. 合理廣告
          在目前一些網(wǎng)站的廣告(彈出廣告、浮動(dòng)廣告、大廣告、banner廣告、通欄廣告等等…)讓人覺得很煩瑣,更本就不愿意來看,有時(shí)連你這個(gè)網(wǎng)站都不上了,這樣一來網(wǎng)站受到了嚴(yán)重的影響、廣告也沒達(dá)到廣告的目的。這些問題都是我們?cè)谠O(shè)計(jì)網(wǎng)站之前需要考慮、需要規(guī)劃的內(nèi)容之一。

          浮動(dòng)廣告有兩種,第一種是在網(wǎng)頁(yè)兩邊空余的地方可以上下浮動(dòng)的廣告,第二種是滿屏幕到處隨機(jī)移動(dòng)的廣告。建議能使用第一種的情況下盡量使用第一種,不可避免第二種情況時(shí)盡量在數(shù)量上控制最多一個(gè)就好。如果數(shù)量過多會(huì)直接影響到用戶的心理、防挨到用戶瀏覽信息,適得其反。首頁(yè)廣告不宜過多適中即可。如在注冊(cè)或者某個(gè)購(gòu)買步驟的頁(yè)面上最好不要出現(xiàn)過多的其他無關(guān)的內(nèi)容讓用戶分心,避免客戶流失等…

          3.空間的合理利用
           很多的網(wǎng)頁(yè)都具有一個(gè)特點(diǎn),用一個(gè)字來形容,那就是“塞”,它將各種各樣的信息如文字、圖片、動(dòng)畫等不加考慮的塞到頁(yè)面上,有多少擠多少,不加以規(guī)范,導(dǎo)致瀏覽時(shí)會(huì)遇到很多的不方便,主要就是頁(yè)面主次不分,喧賓奪主,要不就是沒有重點(diǎn),沒有很好的歸類,整體就像各大雜燴。讓人難以找到需要的東西。有的則是一片空白失去平衡,也可以用個(gè)“散”字來形容。
            并非要把整個(gè)頁(yè)面塞滿了才不覺得空,也并非讓整個(gè)頁(yè)面空曠才不覺得滿,只要合理的安排、有機(jī)的組合,使頁(yè)面達(dá)到平衡,既使在一邊的部分大面積留空,同樣不會(huì)讓人感到空,相反這樣會(huì)給人留下廣闊的思考空間,給人回味又達(dá)到了視覺效果。 

          4.文字編排
            在網(wǎng)頁(yè)設(shè)計(jì)中,字體的處理與顏色、版式、圖形化等其他設(shè)計(jì)元素的處理一樣非常關(guān)鍵。

          4.1文字圖形化
            文字圖形化就是將文字用圖片的形式來表現(xiàn),這種形式在頁(yè)面的子欄目里面最為常用,因?yàn)樗哂型怀觯瑫r(shí)又美化了頁(yè)面,使頁(yè)面更加人性化加強(qiáng)了視覺效果。是文字無法達(dá)到的。對(duì)于通用性的網(wǎng)站弊端就是擴(kuò)展性不強(qiáng)。

          4.2強(qiáng)調(diào)文字
            如果將個(gè)別文字作為頁(yè)面的訴求重點(diǎn),則可以通過加粗、加下劃線、加大號(hào)字體、加指示性符號(hào)、傾斜字體、改變字體顏色等手段有意識(shí)地強(qiáng)化文字的視覺效果,使其在頁(yè)面整體中顯得出眾而奪目。這些方法實(shí)際上都是運(yùn)用了對(duì)比的法則。如果在更新頻率低的情況下也可以使用文字圖形化。

          五、網(wǎng)站配色
          1.用一種色彩。這里是指先選定一種色彩,然后調(diào)整透明度或者飽和度,(說得通俗些就是將色彩變淡或則加深),產(chǎn)生新的色彩,用于網(wǎng)頁(yè)。這樣的頁(yè)面看起來色彩統(tǒng)一,有層次感。

          2.用兩種色彩。先選定一種色彩,然后選擇它的對(duì)比色(在Photoshop里按ctrl+shift+I)再進(jìn)行微小的調(diào)整。整個(gè)頁(yè)面色彩豐富但不花稍。

          3.用一個(gè)色系。簡(jiǎn)單的說就是用一個(gè)感覺的色彩,例如淡藍(lán),淡黃,淡綠;或者土黃,土灰,土藍(lán)。也就是在同一色系里面采用不同的顏色使網(wǎng)頁(yè)增加色彩,而又不花,色調(diào)統(tǒng)一。這種配色方法在網(wǎng)站設(shè)計(jì)種最為常用。

          4.灰色在網(wǎng)頁(yè)設(shè)計(jì)中又稱為“萬能色”,其特點(diǎn)是可以和任何顏色搭配,在使用時(shí)把握量避免網(wǎng)頁(yè)變灰。

          在網(wǎng)頁(yè)配色中,盡量控制在三種色彩以內(nèi),以避免網(wǎng)頁(yè)花、亂、沒有主色的顯現(xiàn)。背景和前文的對(duì)比盡量要大,(絕對(duì)不要用花紋繁復(fù)的圖案作背景),以便突出主要文字內(nèi)容、也使用戶在瀏覽信息的時(shí)候不會(huì)覺得累。

          六、常見問題

          6.1分解大型表格
            為了加快網(wǎng)頁(yè)的瀏覽速度,盡可能避免用大型表格,因?yàn)闉g覽器必須等待整個(gè)表格的內(nèi)容全部到達(dá)客戶端,才能顯示這個(gè)表格的內(nèi)容,而文本或圖像則是一邊下載一邊顯示。同時(shí)我們制作網(wǎng)頁(yè)時(shí)要盡量減少表格的深度、表格復(fù)雜化,這一點(diǎn)尤為重要可直接影響網(wǎng)頁(yè)瀏覽速度、又給后面的程序添加帶來了不必要的麻煩。

          6.2網(wǎng)站導(dǎo)航要清晰
            “您所在位置”在大型網(wǎng)站中是不可缺少的一部分,其作用表明您現(xiàn)在所處在的位置,使用戶不會(huì)不知東西南北迷失在網(wǎng)站中。其次還有讀者進(jìn)入目的頁(yè)的點(diǎn)擊次數(shù),不能超過三次。如果三次以上還找不到用戶所要的信息,人家可就沒有耐心陪你玩了!

          6.3圖片注解
            在很多網(wǎng)站上我們都可以找到一個(gè)共同的缺點(diǎn),當(dāng)網(wǎng)速慢時(shí)有很圖片都無法顯示,又沒有注解使得用戶反感,如在注冊(cè)時(shí)的按鈕是圖片做的又沒加圖片注解,而導(dǎo)致連注冊(cè)都找不到,如果加了注解這些問題也就不成問題了!

          6.4系統(tǒng)按鈕
            在我們做按鈕的時(shí)候,要做成“按鈕”的形式(type="button"),而不要做成“提交表單”的形式(type="submit"),方便以后程序設(shè)計(jì)。

          6.5空鏈接、死鏈接
            在一個(gè)優(yōu)秀、專業(yè)的網(wǎng)站上是找不到任何一個(gè)空鏈接或死鏈接的情況,如果有這種情況會(huì)影響到用戶對(duì)您網(wǎng)站的評(píng)價(jià),所以我們?cè)谥谱鞯臅r(shí)候盡量避免,避免辦法就是提前做好鏈接,如果尚未完成的頁(yè)面則鏈上“建設(shè)中…”的頁(yè)面,加以解釋。

          6.6導(dǎo)航條
            在大型的行業(yè)網(wǎng)站里面主導(dǎo)航條最好是用文字形式,避免使用圖片或Flash做導(dǎo)航條、縮小網(wǎng)站擴(kuò)展性。

          6.7網(wǎng)站的擴(kuò)展性
            對(duì)于一個(gè)行業(yè)網(wǎng)站而言,網(wǎng)站的擴(kuò)展性是相當(dāng)重要的,隨時(shí)都要考慮到網(wǎng)站需求的變化!
          posted @ 2007-01-25 14:49 Q系列類、方法、變量…… 閱讀(390) | 評(píng)論 (0)編輯 收藏
          一.前期準(zhǔn)備工作
          >> 明確市場(chǎng)定位

          企業(yè)正式開發(fā)和建設(shè)一個(gè)WEB網(wǎng)站之前,須先清楚網(wǎng)站所提供產(chǎn)品或服務(wù)的對(duì)象是哪類群體—這是一個(gè)非常關(guān)鍵的問題。如果你的目標(biāo)市場(chǎng)是那些富有的商業(yè)專業(yè)人士,那么網(wǎng)站設(shè)計(jì)應(yīng)大方得體,簡(jiǎn)潔易用;但如果是年輕些的客戶群體,則可以把版面做的生動(dòng)活潑一些。總之要因人制宜。要記住:網(wǎng)站是要讓目標(biāo)客戶看的,并吸引他們購(gòu)買,所以永遠(yuǎn)要把客戶的感受放在第一位。
          >> 確定網(wǎng)站主題

          企業(yè)的WEB網(wǎng)站應(yīng)具有清晰鮮明的主題。要讓訪問者在讀到主頁(yè)的第一段話之后就能清楚該網(wǎng)站大致是做什么的,而且可以迅速了解到網(wǎng)站所提供的產(chǎn)品或服務(wù)。若網(wǎng)站提供了多種不同產(chǎn)品,不要把所有產(chǎn)品都羅列到一個(gè)網(wǎng)頁(yè)中,我們建議大家分門別類,并對(duì)每種產(chǎn)品均設(shè)立相應(yīng)的產(chǎn)品頁(yè)。
          >> 色彩選擇及搭配

          網(wǎng)站給用戶留下第一印象的既不是網(wǎng)站豐富的內(nèi)容,也不是網(wǎng)站合理的版面布局,而是網(wǎng)站的色彩。不同的色彩搭配會(huì)產(chǎn)生不同的效果,并可能影響到訪問者的情緒。一個(gè)網(wǎng)站設(shè)計(jì)成功與否,在某種程度上取決于設(shè)計(jì)者對(duì)色彩的運(yùn)用和搭配。因而確定網(wǎng)站的標(biāo)準(zhǔn)色彩是相當(dāng)重要的一步。

          色彩的數(shù)量:網(wǎng)站整體使用色彩以兩到三種為宜。顏色過多會(huì)使網(wǎng)頁(yè)看起來很花哨,但缺乏內(nèi)在的美感。在顏色選擇和搭配上可借鑒一些國(guó)際大公司網(wǎng)站,他們對(duì)顏色的選擇相當(dāng)審慎。
          色彩的搭配:色彩搭配一定要合理,給人以和諧愉快的感覺。一般來說,適合于網(wǎng)頁(yè)標(biāo)準(zhǔn)色的顏色有藍(lán)色,黃/橙色,黑/灰/白色三大系列色。在顏色的搭配上,有幾種比較經(jīng)典的方案:紅/黃/白; 藍(lán)/白; 紅/灰/白; 藍(lán)/橙/白; 黃/灰/白。實(shí)在不行就去Google一下吧,找一個(gè)自己喜歡的網(wǎng)站,看看人家的顏色是怎么搭配使用的,或許會(huì)對(duì)你大有啟發(fā)。
          其它注意事項(xiàng):避免采用純度很高的單一色彩,這樣容易造成視覺疲勞。避免使用過于明亮或?qū)Ρ冗^于強(qiáng)烈的顏色,它們會(huì)對(duì)眼睛造成傷害,如白底黃字等等。顏色對(duì)比過于接近或不合理的,如深底淺字,深底深字等(例如深藍(lán)色底和黑字)也是設(shè)計(jì)之大忌。建議最好用淺色背景(當(dāng)然白色最好),黑或深色文字。

          >> 遵循K.I.S.S理念

          老話說的好:Keep It Simple Stupid。Stupid在這里指“拙樸”,即務(wù)求最簡(jiǎn)潔直觀。該設(shè)計(jì)理念被奉為網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化和網(wǎng)上商務(wù)的黃金規(guī)則之一。如果你的網(wǎng)站無法為訪問者提供最直接的產(chǎn)品或服務(wù)信息,就等于你在把自己的潛在客戶往競(jìng)爭(zhēng)對(duì)手的網(wǎng)站上送。
          二.設(shè)計(jì)三要素
          無論一個(gè)網(wǎng)站是出于什么目的,若想取得最大的成功,則須保證網(wǎng)站的便利、快速和便宜。這是網(wǎng)站設(shè)計(jì)中最基本的三個(gè)要素。
          要素一:便利性
          保證客戶可以用最小的努力得到他們要找的資料信息。要做到這樣,你必須確保網(wǎng)站為用戶提供了充分的便利性。根據(jù)這一原則,我們?cè)诰W(wǎng)站設(shè)計(jì)中應(yīng):

          >> 建立良好網(wǎng)站結(jié)構(gòu)

          在設(shè)計(jì)時(shí)不單需要考慮站點(diǎn)的外觀是否漂亮,還需要考慮到搜索引擎是否能夠很好地支持你的設(shè)計(jì)結(jié)構(gòu)。我們不建議大家使用下面這些設(shè)計(jì)形式:
          - Frames結(jié)構(gòu):具有導(dǎo)航清晰且方便維護(hù)的優(yōu)點(diǎn),但搜索引擎對(duì)這類網(wǎng)站在索引上仍有一定難度。
          - Flash動(dòng)畫:網(wǎng)頁(yè)視覺效果較好,但搜索引擎同樣在檢索上存在一定難度,而且影響網(wǎng)頁(yè)的打開速度。
          - 純圖片網(wǎng)頁(yè):搜索引擎一般認(rèn)為這樣的網(wǎng)站沒有為用戶提供實(shí)質(zhì)的信息內(nèi)容,因而是無足輕重的。
          - 動(dòng)態(tài)頁(yè)面:具有容易維護(hù)和更新的優(yōu)點(diǎn),但必須了解:并非所有的搜索引擎都能夠象對(duì)待靜態(tài)頁(yè)面一樣來對(duì)待動(dòng)態(tài)頁(yè)面,此外宜使動(dòng)態(tài)頁(yè)面的參數(shù)可能少。
          - Javascript/Java Applets:搜索引擎不支持Java Applets,此外Java設(shè)計(jì)的網(wǎng)站往往會(huì)影響網(wǎng)頁(yè)的打開速度。

          >> 內(nèi)容第一,形式其次

          與其在網(wǎng)站的圖片和顏色上下足工夫,不如多花點(diǎn)時(shí)間在網(wǎng)站的內(nèi)容上—客戶最關(guān)心的莫過于產(chǎn)品的性能,質(zhì)量等等。只要你的內(nèi)容足夠吸引人,即使象白底黑字般簡(jiǎn)單的設(shè)計(jì)也遠(yuǎn)遠(yuǎn)勝過那些華麗的版面設(shè)計(jì)。
          >> 內(nèi)容更新與溝通

          企業(yè)Web站點(diǎn)建好后應(yīng)不斷補(bǔ)充以新的內(nèi)容。站點(diǎn)信息的不斷更新不但可以讓瀏覽者了解到企業(yè)的發(fā)展動(dòng)態(tài),同時(shí)也會(huì)幫助企業(yè)建立良好的形象。
          >> 增強(qiáng)網(wǎng)站可信度

          互聯(lián)網(wǎng)的非個(gè)人性容易使網(wǎng)民滋生某種程度的不信任感。你的客戶是否能夠信任你,這其實(shí)完全取決于你。
          建議:可從以下幾方面著手來增強(qiáng)網(wǎng)站的可信度
          - 網(wǎng)站內(nèi)容信息的完整性及真實(shí)可信性
          - 網(wǎng)站導(dǎo)航清晰,更新及時(shí)且無錯(cuò)誤鏈接
          - 專業(yè)的網(wǎng)站設(shè)計(jì)
          - 網(wǎng)站顯著位置列出個(gè)人信息保密聲明(隱私保護(hù)條款)
          - 網(wǎng)站顯著位置列出服務(wù)條款信息
          - 清楚地說明所有收費(fèi)項(xiàng)目
          - 對(duì)顧客服務(wù)咨詢做出快速回應(yīng)
          - 對(duì)網(wǎng)上支付,清楚說明如何保護(hù)信用卡信息
          - 向客戶發(fā)送交易確認(rèn)電子郵件
          - 對(duì)網(wǎng)站上發(fā)表的文章明確說明作者及來源
          - 避免鏈接到不相關(guān)或者低質(zhì)量的站點(diǎn)

          >> 提供退款承諾

          如果要向客戶表明你的產(chǎn)品或服務(wù)的質(zhì)量,再?zèng)]有比這更好的辦法了。
          >> 提供便捷付款

          作為世界上最成功的“網(wǎng)絡(luò)零售業(yè)”典范之一,網(wǎng)上超市亞馬遜(Amazon.com)年銷售額達(dá)數(shù)十億美元的驕人成績(jī)一部分原因恐怕就要?dú)w功于其付款手續(xù)的便捷性。
          對(duì)網(wǎng)上銷售服務(wù)應(yīng)確保整個(gè)付款手續(xù)清楚易用。盡量簡(jiǎn)化付款步驟,除了交易所必須的信息之外,千萬別要求客戶提供其它個(gè)人信息。
          可經(jīng)常查看網(wǎng)絡(luò)日志中關(guān)于客戶付款方面的信息。若總出現(xiàn)客戶付款中途放棄退出的情況,則需要重新檢查付款手續(xù)是否欠妥。

          >> 充分利用客戶推薦信息

          一個(gè)網(wǎng)站上提供了客戶對(duì)其產(chǎn)品或服務(wù)的推薦或贊賞性的話,則在一定程度上可以提高公司和產(chǎn)品的可信性。所以要充分利用客戶或準(zhǔn)客戶對(duì)公司或產(chǎn)品的贊賞性的話語(yǔ),不過在網(wǎng)上發(fā)布之前先須征得他們的同意。
          >> 提供產(chǎn)品小貼士信息

          從細(xì)節(jié)著手,向客戶提供一些針對(duì)產(chǎn)品或服務(wù)所出現(xiàn)的問題的簡(jiǎn)單解決方案。
          posted @ 2007-01-25 14:38 Q系列類、方法、變量…… 閱讀(341) | 評(píng)論 (0)編輯 收藏
          這是一篇很好的總結(jié)文章,關(guān)于界面設(shè)計(jì)一些基本原則歸納,在設(shè)計(jì)的時(shí)候很有幫助

          本文列舉Jeff Johnson:《GUI設(shè)計(jì)禁忌》一書中提及的明確針對(duì)Web設(shè)計(jì)和筆者認(rèn)為對(duì)Web設(shè)計(jì)有參考意義的設(shè)計(jì)原則和禁忌。設(shè)計(jì)Web項(xiàng)目時(shí)盡量參考一下基本原則,避免設(shè)計(jì)禁忌,應(yīng)該能使Web項(xiàng)目的GUI上一個(gè)層次。

          基本原則:

          1、關(guān)注用戶及其任務(wù),而不是技術(shù)

          2、首先考慮功能,然后才是表示

          3、從用戶的視角看問題,使用用戶的詞匯進(jìn)行描述

          4、不要向用戶暴露實(shí)現(xiàn)細(xì)節(jié)

          5、使常用的用戶任務(wù)簡(jiǎn)單化,不要讓用戶解決額外的問題

          6、保持一致性,引導(dǎo)用戶的使用習(xí)慣

          7、保持顯示慣性,傳遞信息,而不僅僅是數(shù)據(jù)

          8、設(shè)計(jì)應(yīng)滿足響應(yīng)需求

          禁忌:

          1、同一頁(yè)面包含重復(fù)功能的鏈接或按鈕

          2、將復(fù)選框用作單選按鈕

          3、無初始值的多選一設(shè)置

          4、在非開/關(guān)設(shè)置中使用復(fù)選框

          5、用文本框顯示只讀數(shù)據(jù)

          6、單選按鈕之間間隔太大

          7、屬性標(biāo)記對(duì)齊方式不一致

          8、當(dāng)前無效的控件不充分置灰

          9、顯示對(duì)用戶無意義的錯(cuò)誤提示

          10、不同的類型頁(yè)面窗口顯示相同的標(biāo)題

          11、窗口的標(biāo)題和調(diào)用的命令不一致

          12、要求用戶輸入隨機(jī)數(shù)

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

          14、取消按鈕無法真正取消操作

          15、網(wǎng)站結(jié)構(gòu)反映公司的結(jié)構(gòu)或網(wǎng)站升級(jí)的歷史

          16、返回按鈕不能達(dá)到預(yù)期的目的

          17、搜索選項(xiàng)過多,過度復(fù)雜

          18、使用容易被忽略的隱藏的圖片鏈接

          19、需要向下滾動(dòng)才能看到當(dāng)前頁(yè)的重要信息

          20、圖片按鈕對(duì)鼠標(biāo)按下操作沒有視覺變化

          21、無意義的虛假進(jìn)度條

          22、執(zhí)行長(zhǎng)時(shí)間的任務(wù)時(shí)鼠標(biāo)指針不顯示成忙狀態(tài)

          23、不考慮用戶可能的人為的錯(cuò)誤輸入

          24、認(rèn)為好的UI就是漂亮的UI

          25、盲目錯(cuò)誤的使用頁(yè)面模塊化設(shè)計(jì)
          posted @ 2007-01-25 14:35 Q系列類、方法、變量…… 閱讀(416) | 評(píng)論 (0)編輯 收藏
          探討形式美的法則,是所有設(shè)計(jì)學(xué)科共通的課題,那么,它的意義何在呢?在日常生活中,美是每一個(gè)人追求的精神享受。當(dāng)你接觸任何一件有存在價(jià)值的事物時(shí),它必定具備合乎邏輯的內(nèi)容和形式。在現(xiàn)實(shí)生活中,由于人們所處經(jīng)濟(jì)地位、文化素質(zhì)、思想習(xí)俗、生活理想、價(jià)值觀念等不同而具有不同的審美觀念。然而單從形式條件來評(píng)價(jià)某一事物或某一視覺形象時(shí),對(duì)于美或丑的感覺在大多數(shù)人中間存在著一種基本相通的共識(shí)。這種共識(shí)是從人們長(zhǎng)期生產(chǎn)、生活實(shí)踐中積累的,它的依據(jù)就是客觀存在的美的形式法則,我們稱之為形式美法則。在我們的視覺經(jīng)驗(yàn)中,高大的杉樹、聳立的高樓大廈、巍峨的山巒尖峰等,它們的結(jié)構(gòu)輪廓都是高聳的垂直線,因而垂直線在視覺形式上給人以上升、高大、威嚴(yán)等感受;而水平線則使人聯(lián)系到地平線、一望無際的平原、風(fēng)平浪靜的大海等,因而產(chǎn)生開闊、徐緩、平靜等感受…… 這些源于生活積累的共識(shí),使我們逐漸發(fā)現(xiàn)了形式美的基本法則。在西方自古希臘時(shí)代就有一些學(xué)者與藝術(shù)家提出了美的形式法則的理論,時(shí)至今日,形式美法則已經(jīng)成為現(xiàn)代設(shè)計(jì)的理論基礎(chǔ)知識(shí)。在設(shè)計(jì)構(gòu)圖的實(shí)踐上,更具有它的重要性。形式美法則主要有以下幾條:
          和諧
          對(duì)比與統(tǒng)一
          對(duì)稱
          均衡
          比例
          視覺重心
          節(jié)奏與韻律
          聯(lián)想與意境

          和諧

          宇宙萬物,盡管形態(tài)千變?nèi)f化,但它們都各按照一定的規(guī)律而存在,大到日月運(yùn)行、星球活動(dòng),小到原子結(jié)構(gòu)的組成和運(yùn)動(dòng),都有各自的規(guī)律。愛因斯坦指出:宇宙本身就是和諧的。和諧的廣義解釋是:判斷兩種以上的要素,或部分與部分的相互關(guān)系時(shí),各部分所給我們的感受和意識(shí)是一種整體協(xié)調(diào)的關(guān)系。和諧的狹義解釋是統(tǒng)一與對(duì)比兩者之間不是乏味單調(diào)或雜亂無章。單獨(dú)的一種顏色、單獨(dú)的一根線條無所謂和諧,幾種要素具有基本的共通性和溶合性才稱為和諧。比如一組協(xié)調(diào)的色塊,一些排列有序的近似圖形等。和諧的組合也保持部分的差異性,但當(dāng)差異性表現(xiàn)為強(qiáng)烈和顯著時(shí),和諧的格局就向?qū)Ρ鹊母窬洲D(zhuǎn)化。

          對(duì)比與統(tǒng)一

          對(duì)比又稱對(duì)照,把反差很大的兩個(gè)視覺要素成功地配列于一起,雖然使人感受到鮮明強(qiáng)烈的感觸而仍具有統(tǒng)一感的現(xiàn)象稱為對(duì)比,它能使主題更加鮮明,視覺效果更加活躍。對(duì)比關(guān)系主要通過視覺形象色調(diào)的明暗、冷暖,色彩的飽和與不飽和,色相的迥異,形狀的大小、粗細(xì)、長(zhǎng)短、曲直、高矮、凹凸、寬窄、厚薄,方向的垂直、水平、傾斜,數(shù)量的多少,排列的疏密,位置的上下、左右、高低、遠(yuǎn)近,形態(tài)的虛實(shí)、黑白、輕重、動(dòng)靜、隱現(xiàn)、軟硬、干濕等多方面的對(duì)立因素來達(dá)到的。它體現(xiàn)了哲學(xué)上矛盾統(tǒng)一的世界觀。對(duì)比法則廣泛應(yīng)用在現(xiàn)代設(shè)計(jì)當(dāng)中,具有很大的實(shí)用效果。


          對(duì)稱

          自然界中到處可見對(duì)稱的形式,如鳥類的羽翼、花木的葉子等。所以,對(duì)稱的形態(tài)在視覺上有自然、安定、均勻、協(xié)調(diào)、整齊、典雅、莊重、完美的樸素美感,符合人們的視覺習(xí)慣。平面構(gòu)圖中的對(duì)稱可分為點(diǎn)對(duì)稱和軸對(duì)稱。假定在某一圖形的中央設(shè)一條直線,將圖形劃分為相等的兩部分,如果兩部分的形狀完全相等,這個(gè)圖形就是軸對(duì)稱的圖形,這條直線稱為對(duì)稱軸。假定針對(duì)某一圖形,存在一個(gè)中心點(diǎn),以此點(diǎn)為中心通過旋轉(zhuǎn)得到相同的圖形,即稱為點(diǎn)對(duì)稱。點(diǎn)對(duì)稱又有向心的“求心對(duì)稱”,離心的“發(fā)射對(duì)稱”,旋轉(zhuǎn)式的“旋轉(zhuǎn)對(duì)稱”,逆向組合的“逆對(duì)稱”,以及自圓心逐層擴(kuò)大的“同心圓對(duì)稱”等等。在平面構(gòu)圖中運(yùn)用對(duì)稱法則要避免由于過分的絕對(duì)對(duì)稱而產(chǎn)生單調(diào)、呆板的感覺,有的時(shí)候,在整體對(duì)稱的格局中加入一些不對(duì)稱的因素,反而能增加構(gòu)圖版面的生動(dòng)性和美感,避免了單調(diào)和呆板。

          均衡

          在衡器上兩端承受的重量由一個(gè)支點(diǎn)支持,當(dāng)雙方獲得力學(xué)上的平衡狀態(tài)時(shí),稱為平衡。在平面構(gòu)成設(shè)計(jì)上的平衡并非實(shí)際重量×力矩的均等關(guān)系,而是根據(jù)形象的大小、輕重、色彩及其他視覺要素的分布作用于視覺判斷的平衡。平面構(gòu)圖上通常以視覺中心(視覺沖擊最強(qiáng)的地方的中點(diǎn))為支點(diǎn),各構(gòu)成要素以此支點(diǎn)保持視覺意義上的力度平衡(如圖。在實(shí)際生活中,平衡是動(dòng)態(tài)的特征,如人體運(yùn)動(dòng)、鳥的飛翔、野獸的奔馳、風(fēng)吹草動(dòng)、流水激浪等都是平衡的形式,因而平衡的構(gòu)成具有動(dòng)態(tài)。r

          比例

          比例是部分與部分或部分與全體之間的數(shù)量關(guān)系。它是精確詳密的比率概念。人們?cè)陂L(zhǎng)期的生產(chǎn)實(shí)踐和生活活動(dòng)中一直運(yùn)用著比例關(guān)系,并以人體自身的尺度為中心,根據(jù)自身活動(dòng)的方便總結(jié)出各種尺度標(biāo)準(zhǔn),體現(xiàn)于衣食住行的器用和工具的制造中。比如早在古希臘就已被發(fā)現(xiàn)的至今為止全世界公認(rèn)的黃金分割比1:1. 618正是人眼的高寬視域之比。恰當(dāng)?shù)谋壤齽t有一種諧調(diào)的美感,成為形式美法則的重要內(nèi)容。美的比例是平面構(gòu)圖中一切視覺單位的大小,以及各單位間編排組合的重要因素。

          視覺重心

          重心在物理學(xué)上是指物體內(nèi)部各部分所受重力的合力的作用點(diǎn),對(duì)一般物體求重心的常用方法是:用線懸掛物體,平衡時(shí),重心一定在懸掛線或懸掛線的延長(zhǎng)線上;然后握懸掛線的另一點(diǎn),平衡后,重心也必定在新懸掛線或新懸掛線的延長(zhǎng)線上,前后兩線的交點(diǎn)即物體的重心位置。在平面構(gòu)圖中,任何形體的重心位置都和視覺的安定有緊密的關(guān)系。人的視覺安定與造形的形式美的關(guān)系比較復(fù)雜,人的視線接觸畫面,視線常常迅速由左上角到左下角,再通過中心部分至右上角經(jīng)右下角,然后回到以畫面最吸引視線的中心視圈停留下來,這個(gè)中心點(diǎn)就是視覺的重心。但畫面輪廓的變化,圖形的聚散,色彩或明暗的分布等都可對(duì)視覺重心產(chǎn)生影響。因此,畫面重心的處理是平面構(gòu)圖探討的一個(gè)重要的方面。在平面廣告設(shè)計(jì)中,一幅廣告所要表達(dá)的主題或重要的內(nèi)容信息往往不應(yīng)偏離視覺重心太遠(yuǎn)。

          節(jié)奏與韻律

          節(jié)奏本是指音樂中音響節(jié)拍輕重緩急的變化和重復(fù)。節(jié)奏這個(gè)具有時(shí)間感的用語(yǔ)在構(gòu)成設(shè)計(jì)上是指以同一視覺要素連續(xù)重復(fù)時(shí)所產(chǎn)生的運(yùn)動(dòng)感。
          韻律原指音樂(詩(shī)歌)的聲韻和節(jié)奏。詩(shī)歌中音的高低、輕重、長(zhǎng)短的組合,勻稱的間歇或停頓,一定地位上相同音色的反復(fù)及句末、行末利用同韻同調(diào)的音相加以加強(qiáng)詩(shī)歌的音樂性和節(jié)奏感,就是韻律的運(yùn)用。平面構(gòu)成中單純的單元組合重復(fù)易于單調(diào),由有規(guī)則變化的形象或色群間以數(shù)比、等比處理排列,使之產(chǎn)生音樂、詩(shī)歌的旋律感,稱為韻律。有韻律的構(gòu)成具有積極的生氣,有加強(qiáng)魅力的能量。

          聯(lián)想與意境

          平面構(gòu)圖的畫面通過視覺傳達(dá)而產(chǎn)生聯(lián)想,達(dá)到某種意境。聯(lián)想是思維的延伸,它由一種事物延伸到另外一種事物上。例如圖形的色彩:紅色使人感到溫暖、熱情、喜慶等;綠色則使人聯(lián)想到大自然、生命、春天,從而使人產(chǎn)生平靜感、生機(jī)感、春意等等。各種視覺形象及其要素都會(huì)產(chǎn)生不同的聯(lián)想與意境,由此而產(chǎn)生的圖形的象征意義作為一種視覺語(yǔ)義的表達(dá)方法被廣泛地運(yùn)用在平面設(shè)計(jì)構(gòu)圖中。
          隨著科技文化的發(fā)展,對(duì)美的形式法則的認(rèn)識(shí)將不斷深化。形式美法則不是僵死的教條,要靈活體會(huì),靈活運(yùn)用。
          posted @ 2007-01-25 13:53 Q系列類、方法、變量…… 閱讀(612) | 評(píng)論 (0)編輯 收藏
          為了使界面設(shè)計(jì)有步奏,流程清晰明了. 所以對(duì)界面按系統(tǒng)設(shè)計(jì)劃分層次. 界面設(shè)計(jì)時(shí)可分以下三個(gè)設(shè)計(jì)層次.

          1 結(jié)構(gòu)設(shè)計(jì)層:
          產(chǎn)品的整體架構(gòu), 紙上完成的低保真原型.它主要是用來確定軟件的結(jié)構(gòu),如:控件如何布局,窗體閑的如何切換。由設(shè)計(jì)師在紙上或一些工具上實(shí)現(xiàn)的不帶數(shù)據(jù)流的簡(jiǎn)單界面原型.

          2 視覺設(shè)計(jì)層:
          根據(jù)結(jié)構(gòu)層, 在原型的基礎(chǔ)上,對(duì)影響用戶視覺的界面元素層(負(fù)責(zé)顯示信息,圖片的層)以人機(jī)交互機(jī)制為依據(jù)進(jìn)行進(jìn)一步的設(shè)計(jì).如:界面顏色,信息顯示方式, 圖標(biāo)使用,字體大小顏色設(shè)定等.

          3 交互設(shè)計(jì)層:
          對(duì)屆面中與影響用戶操作的元素, 如操作反饋, 語(yǔ)言用法等,根據(jù)機(jī)制進(jìn)行的設(shè)計(jì)。

          為了設(shè)計(jì)者有規(guī)可循,根據(jù)用戶界面設(shè)計(jì)的目標(biāo) ,制定了一些機(jī)制,可為開發(fā)人員的設(shè)計(jì)標(biāo)準(zhǔn).
          用戶界面設(shè)計(jì)要以用戶為中心,處處為用戶設(shè)想。所以必須以用戶為目標(biāo)出發(fā),從界面的元素,布局, 信息流,用戶操作環(huán)境及人的心理生理特點(diǎn)出發(fā),設(shè)立以下的機(jī)制。

          1.界面布局機(jī)制
          軟件界面中人接觸最多的,也是界面的基礎(chǔ)。它與人的視覺, 記憶,手部操作都有關(guān)。
          因此這機(jī)制的目標(biāo): 提高界面的可讀性,舒適性,使操作時(shí)間最短

          2.信息輸出輸入機(jī)制
          界面與用戶最基本的交流就是信息,因此需建立此機(jī)制。它與人的視覺, 記憶,手部操作都有關(guān)。
          目標(biāo): 人性化,使用戶明白系統(tǒng)所輸入輸出的信息, 減輕人腦和手的負(fù)擔(dān)

          3.防錯(cuò)機(jī)制
          是人都會(huì)有錯(cuò), 但是并不意味著讓錯(cuò)誤發(fā)生,盡量減少錯(cuò)誤的發(fā)生,至少也不要增加不必要的錯(cuò)誤。
          目標(biāo): 盡量防止因人為或系統(tǒng)原因而產(chǎn)生錯(cuò)誤

          4.窗體閑切換機(jī)制
          界面最常發(fā)生的是窗體切換, 也要考慮到對(duì)人得影響。
          目標(biāo):使窗體閑切換更合理和方便

          5.系統(tǒng)幫助機(jī)制
          軟件都少不了幫助系統(tǒng), 因此也該考慮。
          目標(biāo):減輕人腦和手的負(fù)擔(dān), 使系統(tǒng)更易用

          6.系統(tǒng)反饋機(jī)制
          反饋是系統(tǒng)與用戶交互的基本元素之一, 也是常發(fā)生的 。所以也需為其定下機(jī)制。
          目標(biāo):防止用戶因不了解系統(tǒng)當(dāng)前狀態(tài)而犯錯(cuò), 不耐煩, 不能及時(shí)處理工作

          7.冗余機(jī)制
          根據(jù)第二定律所設(shè)下的機(jī)制。
          目標(biāo): 減少系統(tǒng)干擾用戶, 加快執(zhí)行速度

          8.一致性機(jī)制
          本來它是機(jī)制中的一個(gè)原則, 但是它卻存在于各個(gè)機(jī)制中, 因此需另外提出以視強(qiáng)調(diào)~
          posted @ 2007-01-25 13:50 Q系列類、方法、變量…… 閱讀(191) | 評(píng)論 (0)編輯 收藏
          1. oncontextmenu="window.event.returnvalue=false" 將徹底屏蔽鼠標(biāo)右鍵
          <table border oncontextmenu=return(false)><td>no</table> 可用于Table
          2. <body onselectstart="return false"> 取消選取、防止復(fù)制
          3. onpaste="return false" 不準(zhǔn)粘貼

          4. oncopy="return false;" oncut="return false;" 防止復(fù)制

          5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址欄前換成自己的圖標(biāo)

          6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夾中顯示出你的圖標(biāo)

          7. <input style="ime-mode:disabled"> 關(guān)閉輸入法

          8. 永遠(yuǎn)都會(huì)帶著框架
          <script language="javascript"><!--
          if (window == top)top.location.href = "frames.htm"; //frames.htm為框架網(wǎng)頁(yè)
          // --></script>

          9. 防止被人frame
          <SCRIPT LANGUAGE=javascript><!--
          if (top.location != self.location)top.location=self.location;
          // --></SCRIPT>

          10. <noscript><iframe src=*.html></iframe></noscript> 網(wǎng)頁(yè)將不能被另存為

          11. <input type=button value=查看網(wǎng)頁(yè)源代碼
          onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">

          12. 怎樣通過asp的手段來檢查來訪者是否用了代理
          <% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then
          response.write "<font color=#FF0000>您通過了代理服務(wù)器,"& _
          "真實(shí)的IP為"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
          end if
          %>

          13. 取得控件的絕對(duì)位置

          //javascript
          <script language="javascript">
          function getIE(e){
          var t=e.offsetTop;
          var l=e.offsetLeft;
          while(e=e.offsetParent){
          t+=e.offsetTop;
          l+=e.offsetLeft;
          }
          alert("top="+t+"nleft="+l);
          }
          </script>

          //VBScript
          <script language="VBScript"><!--
          function getIE()
          dim t,l,a,b
          set a=document.all.img1
          t=document.all.img1.offsetTop
          l=document.all.img1.offsetLeft
          while a.tagName<>"BODY"
          set a = a.offsetParent
          t=t+a.offsetTop
          l=l+a.offsetLeft
          wend
          msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
          end function
          --></script>

          14. 光標(biāo)是停在文本框文字的最后
          <script language="javascript">
          function cc()
          {
          var e = event.srcElement;
          var r =e.createTextRange();
          r.moveStart('character',e.value.length);
          r.collapse(true);
          r.select();
          }
          </script>
          <input type=text name=text1 value="123" onfocus="cc()">

          15. 判斷上一頁(yè)的來源
          asp:
          request.servervariables("HTTP_REFERER")

          javascript:
          document.referrer

          16. 最小化、最大化、關(guān)閉窗口
          <object id=hh1 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Minimize"></object>
          <object id=hh2 classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
          <param name="Command" value="Maximize"></object>
          <OBJECT id=hh3 classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
          <PARAM NAME="Command" value="Close"></OBJECT>

          <input type=button value=最小化 onclick=hh1.Click()>
          <input type=button value=最大化 onclick=hh2.Click()>
          <input type=button value=關(guān)閉 onclick=hh3.Click()>
          本例適用于IE

          17.
          <%
          '定義數(shù)據(jù)庫(kù)連接的一些常量
          Const adOpenForwardOnly = 0 '游標(biāo)只向前瀏覽記錄,不支持分頁(yè)、Recordset、BookMark
          Const adOpenKeyset = 1 '鍵集游標(biāo),其他用戶對(duì)記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會(huì)反映到記錄集中。支持分頁(yè)、Recordset、BookMark
          Const adOpenDynamic = 2 '動(dòng)態(tài)游標(biāo)功能最強(qiáng),但耗資源也最多。用戶對(duì)記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
          Const adOpenStatic = 3 '靜態(tài)游標(biāo),只是數(shù)據(jù)的一個(gè)快照,用戶對(duì)記錄說做的修改,增加或刪除記錄都不會(huì)反映到記錄集中。支持向前或向后移動(dòng)

          Const adLockReadOnly = 1 '鎖定類型,默認(rèn)的,只讀,不能作任何修改
          Const adLockPessimistic = 2 '當(dāng)編輯時(shí)立即鎖定記錄,最安全的方式
          Const adLockOptimistic = 3 '只有在調(diào)用update方法時(shí)才鎖定記錄集,而在此前的其他操作仍可對(duì)當(dāng)前記錄進(jìn)行更改、插入和刪除等
          Const adLockBatchOptimistic = 4 '當(dāng)編輯時(shí)記錄不會(huì)被鎖定,而更改、插入和刪除是在批處理方式下完成的

          Const adCmdText = &H0001
          Const adCmdTable = &H0002
          %>

          18. 網(wǎng)頁(yè)不會(huì)被緩存
          HTM網(wǎng)頁(yè)
          <META HTTP-EQUIV="pragma" CONTENT="no-cache">
          <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
          <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
          或者<META HTTP-EQUIV="expires" CONTENT="0">
          ASP網(wǎng)頁(yè)
          Response.Expires = -1
          Response.ExpiresAbsolute = Now() - 1
          Response.cachecontrol = "no-cache"
          PHP網(wǎng)頁(yè)
          header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
          header("Cache-Control: no-cache, must-revalidate");
          header("Pragma: no-cache");

          19. 檢查一段字符串是否全由數(shù)字組成
          <script language="javascript"><!--
          function checkNum(str){return str.match(/D/)==null}
          alert(checkNum("1232142141"))
          alert(checkNum("123214214a1"))
          // --></script>

          20. 獲得一個(gè)窗口的大小
          document.body.clientWidth,document.body.clientHeight

          21. 怎么判斷是否是字符
          if (/[^x00-xff]/g.test(s)) alert("含有漢字");
          else alert("全是字符");

          22.TEXTAREA自適應(yīng)文字行數(shù)的多少
          <textarea rows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
          </textarea>

          23. 日期減去天數(shù)等于第二個(gè)日期
          <script language=javascript>
          function cc(dd,dadd)
          {
          //可以加上錯(cuò)誤處理
          var a = new Date(dd)
          a = a.valueOf()
          a = a - dadd * 24 * 60 * 60 * 1000
          a = new Date(a)
          alert(a.getFullYear() + "年" + (a.getMonth() + 1) + "月" + a.getDate() + "日")
          }
          cc("12/23/2002",2)
          </script>

          24. 選擇了哪一個(gè)Radio
          <HTML><script language="vbscript">
          function checkme()
          for each ob in radio1
          if ob.checked then window.alert ob.value
          next
          end function
          </script><BODY>
          <INPUT name="radio1" type="radio" value="style" checked>Style
          <INPUT name="radio1" type="radio" value="barcode">Barcode
          <INPUT type="button" value="check" onclick="checkme()">
          </BODY></HTML>

          25.獲得本頁(yè)url的request.servervariables("")集合
          Response.Write "<TABLE border=1><!-- Table Header --><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
          for each ob in Request.ServerVariables
          Response.Write "<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
          next
          Response.Write "</TABLE>"

          26.
          本機(jī)ip<%=request.servervariables("remote_addr")%>
          服務(wù)器名<%=Request.ServerVariables("SERVER_NAME")%>
          服務(wù)器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
          服務(wù)器端口<%=Request.ServerVariables("SERVER_PORT")%>
          服務(wù)器時(shí)間<%=now%>
          IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
          腳本超時(shí)時(shí)間<%=Server.ScriptTimeout%>
          本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
          服務(wù)器CPU數(shù)量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
          服務(wù)器解譯引擎<%=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
          服務(wù)器操作系統(tǒng)<%=Request.ServerVariables("OS")%>

          27.ENTER鍵可以讓光標(biāo)移到下一個(gè)輸入框
          <input onkeydown="if(event.keyCode==13)event.keyCode=9">

          28. 檢測(cè)某個(gè)網(wǎng)站的鏈接速度:
          把如下代碼加入<body>區(qū)域中:
          <script language=javascript>
          tim=1
          setInterval("tim++",100)
          b=1

          var autourl=new Array()
          autourl[1]="http://www.njcatv.net/"
          autourl[2]="javacool.3322.net"
          autourl[3]="http://www.sina.com.cn/"
          autourl[4]="www.nuaa.edu.cn"
          autourl[5]="http://www.cctv.com/"

          function butt(){
          document.write("<form name=autof>")
          for(var i=1;i<autourl.length;i++)
          document.write("<input type=text name=txt"+i+" size=10 value=測(cè)試中……> =》<input type=text name=url"+i+" size=40> =》<input type=button value=GO onclick=window.open(this.form.url"+i+".value)><br/>")
          document.write("<input type=submit value=刷新></form>")
          }
          butt()
          function auto(url){
          document.forms[0]["url"+b].value=url
          if(tim>200)
          {document.forms[0]["txt"+b].value="鏈接超時(shí)"}
          else
          {document.forms[0]["txt"+b].value="時(shí)間"+tim/10+"秒"}
          b++
          }
          function run(){for(var i=1;i<autourl.length;i++)document.write("<img src=http://"+autourl[i]+"/"+Math.random()+" width=1 height=1 onerror=auto('http://"/;;;;;+autourl[i]+"')>")}
          run()</script>

          29. 各種樣式的光標(biāo)
          auto :標(biāo)準(zhǔn)光標(biāo)
          default :標(biāo)準(zhǔn)箭頭
          hand :手形光標(biāo)
          wait :等待光標(biāo)
          text :I形光標(biāo)
          vertical-text :水平I形光標(biāo)
          no-drop :不可拖動(dòng)光標(biāo)
          not-allowed :無效光標(biāo)
          help :?幫助光標(biāo)
          all-scroll :三角方向標(biāo)
          move :移動(dòng)標(biāo)
          crosshair :十字標(biāo)
          e-resize
          n-resize
          nw-resize
          w-resize
          s-resize
          se-resize
          sw-resize

          1、 去掉IE的滾動(dòng)條
          有時(shí)候做好的網(wǎng)頁(yè)明明沒有超出窗口,可IE卻偏偏給加上滾動(dòng)條,這樣看上去很不舒服,其實(shí)這也是可以通過一些小技巧避免的。具體如下:
          <body style=”overflow-x:hidden”>…</body> //去掉X軸方向的滾動(dòng)條
          <body style=”overflow-y:hidden”>…</body> //去掉Y軸方向的滾動(dòng)條
          <body style=”overflow:hidden”>…</body> //去掉全部的滾動(dòng)條
          現(xiàn)在你看到的和你想像中的網(wǎng)頁(yè)應(yīng)該一樣了吧,如果其中有什么不明白的地方可以參照注釋中的說明。

          2、 使網(wǎng)頁(yè)中的復(fù)制無效
          有方法防止網(wǎng)頁(yè)被保存了(參見《你別看我的源代碼》),可不可以也防止網(wǎng)頁(yè)內(nèi)容被復(fù)制呢?答案是當(dāng)然可以。看看下面的例子你就會(huì)明白的。
          <html>
          <head>
          <script language=”javascript”>
          function nocopy() {
          alert(“對(duì)不起,你不能非法復(fù)制本站內(nèi)容”);
          event.returnvalue=false;
          }
          </script>
          </head>
          <body oncopy=”nocopy()”>copyright by commander.</body>
          </html>
          這其實(shí)中是利用了document的一個(gè)oncopy事件,也就是說當(dāng)發(fā)生復(fù)制事件時(shí),彈出警告框,同時(shí)事件(event)的返回值為false使oncopy事件失效,從而達(dá)到防止復(fù)制的目的。

          3、 用腳本控制瀏覽器
          看到標(biāo)題是不是有點(diǎn)不相信,那么試試下面的這幾個(gè)例子吧!你一定會(huì)吃驚的。
          在<body>和</body>之間加入如下代碼:
          <button onclick=”document.execCommand('open')”>打開</button>
          <button onclick=”document.execCommand('saveas')”>另存為…</button>
          <button onclick=”document.execCommand('print')”>打印</button>
          上面其實(shí)都是利用了document.execCommand()這個(gè)內(nèi)置的函數(shù),其參數(shù)為相應(yīng)的瀏覽器命令,還有很多命令就留給大家自己發(fā)現(xiàn)吧!

          4、 IFrame也可以編輯文字
          有沒有想過除了表單(<form>)之外還有其它的網(wǎng)頁(yè)元素可以編輯文字呢?只要使用IFrame的隱藏的一個(gè)屬性就可以使IFrame成為一個(gè)文本編輯器。
          <html>
          <body onload=”editer.document.designMode='On'”>
          <IFrame ID=”editer”></IFrame>
          </body>
          </html>
          其中designMode屬性表示IFrame的設(shè)計(jì)模式的狀態(tài)(開/關(guān)),還在猶豫什么呢,快試試吧!
          只要巧妙的利用這一特性就可以制作很多意想不到的效果。如果下面我們來做一個(gè)圖片編輯器。
          <html>
          <body onload=”imgEditer.document.designMode='On';imgEditer.document.write('<img src=圖片.gif>')”>
          <IFrame id=”imgEditer”></IFrame>
          </body>
          </html>
          用鼠標(biāo)點(diǎn)擊圖片是不是有新的發(fā)現(xiàn),其實(shí)大家只要利用自己的想象和充分利用這個(gè)屬性一定能做出更多的花樣來,別忘了到時(shí)候有什么新的東東,告訴我一聲呀!(Email:BluePBoy@yesky.com)

          5、 打開硬盤
          這是打開硬盤的另一種方法,把它寫出來只是想告訴大家,要達(dá)到同一個(gè)目的有很多種方法,這里就是利用了表單的Action屬性達(dá)到的,其實(shí)打開硬盤有很多種方法,只是這種不太被人們注意,所以這里就選擇了這種方法。
          <form action=file ://c|><input type=”submit” value=”打開C盤”></form>
          posted @ 2007-01-25 13:48 Q系列類、方法、變量…… 閱讀(243) | 評(píng)論 (0)編輯 收藏
          正度紙張:787×1092mm
          開數(shù)(正度) 尺寸 單位(mm)
          全開 781×1086
          2開 530×760 3開 362×781
          4開 390×543 6開 362×390
          8開 271×390
          16開 195×271
          注:成品尺寸=紙張尺寸-修邊尺寸

          大度紙張:850*1168mm
          開數(shù)(正度) 尺寸 單位(mm)
          全開 844×1162
          2開 581×844 3開 387×844
          4開 422×581 6開 387×422
          8開 290×422
          注:成品尺寸=紙張尺寸-修邊尺寸

          常見開本尺寸(單位:mm)
          開本尺寸:787 x 1092
          對(duì)開:736 x 520
          4開:520 x 368
          8開:368 x 260
          16開:260 x 184
          32開:184 x 130

          開本尺寸(大度):850 x 1168
          對(duì)開:570 x 840
          4開:420 x 570
          8開:285 x 420
          16開:210 x 285
          32開:203 x 140

          正度紙張:787×1092mm
          開數(shù)(正度) 尺寸 單位(mm)
          全開 781×1086
          2開 530×760
          3開 362×781
          4開 390×543
          6開 362×390
          8開 271×390
          16開 195×271
          注:成品尺寸=紙張尺寸-修邊尺寸

          大度紙張:850*1168mm
          開數(shù)(正度) 尺寸 單位(mm)
          全開 844×1162
          2開 581×844
          3開 387×844
          4開 422×581
          6開 387×422
          8開 290×422
          注:成品尺寸=紙張尺寸-修邊尺寸

          16開 大度:210×285 正度:185×260
          8開 大度:285×420 正度:260×370
          4開 大度:420×570 正度:370×540
          2開 大度:570×840 正度:540×740
          全開 大:889×1194 小:787×1092

          名片

          橫版:90*55mm<方角> 85*54mm<圓角>
          豎版:50*90mm<方角> 54*85mm<圓角>
          方版:90*90mm 90*95mm

          IC卡  85x54MM

          三折頁(yè)廣告
          標(biāo)準(zhǔn)尺寸: (A4)210mm x 285mm

          普通宣傳冊(cè)
          標(biāo)準(zhǔn)尺寸: (A4)210mm x 285mm

          文件封套
          標(biāo)準(zhǔn)尺寸:220mm x 305mm

          招貼畫:
          標(biāo)準(zhǔn)尺寸:540mm x 380mm

          掛旗
          標(biāo)準(zhǔn)尺寸:8開 376mm x 265mm

          4開 540mm x 380mm

          手提袋:
          標(biāo)準(zhǔn)尺寸:400mm x 285mm x 80mm

          信紙 便條:
          標(biāo)準(zhǔn)尺寸:185mm x 260mm 210mm x 285mm~
          posted @ 2007-01-25 13:47 Q系列類、方法、變量…… 閱讀(164) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 新邵县| 明水县| 聂拉木县| 柞水县| 徐水县| 新丰县| 辽宁省| 谢通门县| 浙江省| 扎赉特旗| 来宾市| 临西县| 肥西县| 双城市| 左云县| 常熟市| 孙吴县| 闽侯县| 永安市| 含山县| 定襄县| 泾源县| 德江县| 长岛县| 余干县| 松原市| 曲松县| 普安县| 迁安市| 郁南县| 开化县| 剑阁县| 翁牛特旗| 小金县| 宿松县| 瑞金市| 大足县| 天峻县| 基隆市| 平谷区| 高阳县|