中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術文檔 > 網絡編程 > MacromediaColdFusionMX開發(fā)者
Coldfusion MX技巧精華收集(1) 回到列表 ASP.NET 中的隨機密碼生成
 MacromediaColdFusionMX開發(fā)者

作者:MJking 時間: 2003-04-27 文檔類型: 來自:藍色理想

第 1 頁 MacromediaColdFusionMX開發(fā)者
第 2 頁 第二期:基礎管理操作以及入門程序
第 3 頁 第三期:ColdFusionMX編程入門
第 4 頁 第四期:ColdFusionMX Basic Tag編程
第 5 頁 第五期:ColdFusionMX中的循環(huán)

第五期:ColdFusionMX中的循環(huán)

序言

      任何一種程序再簡單也要具備一定的邏輯和算法,Coldfusion也不例外。如果只是靠簡單的標簽的堆砌,是無法真正實現(xiàn)企業(yè)商業(yè)邏輯的。而且,我在這里非?隙ǖ奶岢鲆稽c,就是簡單絕對不等于功能弱小。目前,網絡技術發(fā)展到了一個注重表現(xiàn)的時代,就是每一個開發(fā)出來的網絡應用,要在實現(xiàn)邏輯的同時,具備讓客戶有豐富的用戶體驗是另一個追求的目標。Flash+Flashremoting+cf serverside script就是一種極具體驗的開發(fā)手段。而對于開發(fā)工具,眾多的開發(fā)廠商更是在工具的易用性上做足了文章,微軟vs.net開發(fā)平臺的完整統(tǒng)一性,Oracle9i JDeveloper開發(fā)j2ee程序的wizard方式,Macromedia DreamweaverMX眾多的服務器端的腳本語言的支持,都是在工具易用性上的一種體現(xiàn)。我們今天要給大家講解的就是簡單易用的coldfusion loop。通過cf中不同的循環(huán)嵌套,能夠實現(xiàn)很多在cf中編程的邏輯。

      這里的序言還要補充說明一點,操作access數據庫時的中文解決的方法,如果哪位開發(fā)者有興趣,請去這里查看并參與探討:

http://www.flashempire.net/showthread.php?s=a85407ff13de51915c82a57b7eb2e1ee&threadid=125029


第一部分 看看CF中的流程控制和循環(huán)

我們點擊DreamweaverMX中Insert面板里的cf flow標簽,會看到如下的一行圖標:

這行圖標幾乎完成了coldfusion中最重要的流程和循環(huán)處理。談到流程,我們在學習任何一門語言的過程中第一個接觸到的就是if…then…else這個流程控制語句。想必很多從事網頁設計的朋友都不可避免的接觸過這個邏輯。這個邏輯是簡單的,但是是最常用到的。在上圖中,用文字顯示“if else elsif”就是使用cf中的if流程控制。點擊標有文字“if”的時候,我們用原代碼的方式觀察頁面,就會看到在光標所在出已經插入了<cfif></cfif>這個代碼段。我們把所有在cf中用<cfxxx>…</cfxxx>都看作一個封閉的代碼段,不管它有多長,也不管它有多短。

使用cfif標簽,標準的簡單描述應該是這樣的:

<cfif 你要判斷的條件>

       你要做的事情:可以是一行輸出,也可以是若干個其他的復雜的代碼段。

</cfif>

那么我們經常使用一些判斷條件的操作符來決定cfif的流程的走向,因為在cfif的邏輯判斷中,只有真(1)和假(0)兩種,如果條件為真,就做cfif標簽中間嵌套的事務,如果為假,就跳出這個邏輯,去處理下一個邏輯。那么cf中的操作符非常的人性話,它使用語言表達判斷,而不是符號。比如,“=”在cfif的條件操作符中要表達為“EQ”,“>”要表示為“GREATER THAN”或者“GT”。如果我們判斷a是否等于B,那么在cf中要這樣寫:

<cfif A EQ B>

<cfset A=B>

</cfif>

使用詳細的條件操作符請看下表:

Operator(解釋)

縮寫

Operator(解釋)

縮寫

IS(==)

EQUAL,EQ

GREAT THAN OR EQUAL TO(>=)

GTE,GE

IS NOT(<>)

NOT EQUAL,NEQ

LESS THAN OR EQUAL TO(<=)

LTE,LE

GREATER THAN(>)

GT

Contains(包括)

 

LESS THAN(<)

LT

Does Not Contain(不包括)

 

那么另外的else和elsif是嵌套在完整的cfif中的,下面這段代碼是一個完整的說明:

<cfif 表達式1>

代碼段1

<cfelseif 表達式2>

代碼段2

<cfelse>

代碼段3

</cfif>

如果表達式一成立,則做代碼段1,如果表達式1不成立,則判斷表達式2是否成立,如果表達式2成立,則做代碼段2,否則做代碼段3。各位沒有開發(fā)基礎的朋友,可以試試這段小代碼,之后運行一下就明白結果了。

<cfif 1 is 0>

<cfoutput>1</cfoutput>

<cfelseif 2 is 0>

<cfoutput>2</cfoutput>

<cfelse>

<cfoutput>3</cfoutput>

</cfif>

開發(fā)程序我們在控制流程的過程中,還用到了switch…case方法,在coldfusion的編程方式中同樣支持。而對于Switch…case方法,使用起來也是很簡單的,這里進行一下簡單的講解。點擊 這三個圖標來完成cfswitch的操作,目的在于讓開發(fā)者進行同一種表達式對于多種結果值的條件下進行流程的選擇。點擊了左邊的圖標之后,我們會看到下面的窗口:

語法操作如下:

<cfswitch expression= "#var#">

       <cfcase value= "x1">

              action1

       </cfcase>

       <cfcase value= "x2">

              action2

       </cfcase>

       …

       <cfdefaultcase>

              default action

       </cfdefaultcase>

</cfswitch>

語法解釋非常的簡單,對于表達式expression,用cfcase的value屬性來反映表達式中#var#的值,然后針對不同的值,來響應不同的action,做不同的操作,如果沒有值匹配,那么做cfdefaultcase標簽中的默認action。來個macromedia官方標準的程序段看看:

<cfquery name = "GetEmployees" dataSource = "cfsnippets">

SELECT Emp_ID, FirstName, LastName, EMail, Phone, Department

FROM Employees

</cfquery>

<h3>cfswitch Example</h3>

<p>Each time the case is fulfilled, the specific information is printed;

if the case is not fulfilled, the default case is output </p>

<cfoutput query="GetEmployees">

<cfswitch expression="#Trim(Department)#">

<cfcase value="Sales">

#FirstName# #LastName# is in <b>sales</b><br><br>

</cfcase>

<cfcase value="Accounting">

#FirstName# #LastName# is in <b>accounting</b><br><br>

</cfcase> <cfcase value="Administration">

#FirstName# #LastName# is in <b>administration</b><br><br>

</cfcase>

<cfdefaultcase>

#FirstName# #LastName# is not in Sales, Accounting, or

Administration.<br><br>

</cfdefaultcase>

</cfswitch>

</cfoutput>

這段代碼就是通過了cfswitch來顯示cfmx默認數據源cfsnippets中Employees表中的人員,而方式用department(所在的部門)變量在cfswitch中cfcase的不同value來區(qū)分顯示開來。

我們來看cf flow面板中的另外3個圖標集合: ,這3個圖標從左到右,依次是cftry、cfcatch、cfthrow。這3個tag在進行cf應用程序的編寫調試過程中,起到了重要的作用。這3個標簽實際上是進行了應用程序的錯誤和異常的處理。為什么要有錯誤和異常的處理?作者本人認為有兩個大的方面的作用。第一,就是提醒開發(fā)人員應用程序出錯或異常,同時使系統(tǒng)在交付給客戶之后出現(xiàn)錯誤或異常后,能夠使用不同方式的處理給客戶一個可靠的感覺。第二,就是減少應用程序遭受攻擊的可能。如果我們不使用錯誤和異常處理,那么我們經?梢钥吹,如果程序處理出錯,會在web瀏覽器里暴露出不該出現(xiàn)的信息,比如數據庫表名,字段名,甚至對數據庫的操作等等。其實這些出錯信息是不應該對外顯示在web瀏覽器里的。

我們在編寫coldfusion應用程序的時候,應該注意一下可能出現(xiàn)的錯誤類型,從而能使用cfmx administrator里的設定和cftry等tag結合來處理這些錯誤。我們經常遇到的錯誤分為五類:語法錯誤、數據庫操作錯誤、應用服務器(application server)環(huán)境錯誤、邏輯錯誤和驗證錯誤。按照這些錯誤的重要性來排序,第一位的就是應用服務器環(huán)境錯誤,這些錯誤由application server產生,它可能會導致整個coldfusion應用不能運行。所以排在最為重要的位置。其他的我們應該力圖減少語法和邏輯錯誤,因為這種錯誤可以通過不斷的debug來修正,而且這類錯誤的調試比較消耗精力。

我們先來看下圖,這是我操作cfmx administrator->debugging settiongs的過程中的一個截圖:

如果你選擇了Enable Robust Exception Information這個選項,在cfm頁面出現(xiàn)錯誤的時候,將通過瀏覽器可以看到application顯示的應用錯誤信息,包括頁面模板物理路徑、頁面的URI,錯誤行數(不一定準確)、操作的數據庫語句、數據源名稱、Java堆棧的trace方式等等。這樣其中一些信息顯然是你在把項目提交給客戶后不希望顯示的,所以在production server上安裝完coldfusionMX之后,要把這個選項的勾選去掉。

通過簡單的介紹<cftry>和<cfcatch>之后,可能很多人都不會使用,那么我們用一個最最簡單的數據庫的操作來說明錯誤處理的作用;貞浵惹暗某绦,我們先寫下一段簡單的數據庫query程序段:

<CFQUERY NAME="demo" DATASOURCE="cfsnippets">

SELECT      Emp_ID, LastName

FROM         Employees

</CFQUERY>

如果我們把cfsnippets的名稱改成xxx,那么我們看看會發(fā)生什么情況?請看下面的截圖:

上面的這張截圖是cf server自動給出的錯誤信息顯示頁面。這個頁面上,看看我們提供了哪些重要的信息給來自外部的訪問人員?數據源名稱,文件的物理路徑,sql查詢的語句。這些信息完全給那些帶有惡意的訪問者以可乘之機。那么我們應該使用<cftry>和<cfcatch>來避免這些報錯信息的顯示。修改以后的代碼如下:

<cftry>

<CFQUERY NAME="demo" DATASOURCE="xxx">

SELECT      Emp_ID, LastName

FROM         Employees

</CFQUERY>

<CFCatch Type="database">

       對不起!我們不能連接到數據庫服務器!非常抱歉!

       <CFAbort>

</CFCatch>

</cftry>

之后我們看到的瀏覽器中的顯示信息為:

“對不起!我們不能連接到數據庫服務器!非常抱歉!”

這樣,很多非常重要的,涉及到安全性的信息就被保護了起來,同樣也就降低了服務器被惡意攻擊的可能性。
第二部分 在原有的基礎之上深入一下

很多開發(fā)人員在學習了五個部分的基本coldfusionMX的知識后,已經可以進行一些簡單的應用程序編寫了。那么我們就在原有的基礎之上,深入一下。講解coldfusionMX的最新的CFComponent的基本知識。關于本教程的中的一些CFComponent的資料來源于macromedia官方。

在開始講解CFComponent(以下簡稱CFC)之前,先來一段簡單的概要,讓各位開發(fā)人員在整體上對CFC進行一下介紹。很多開發(fā)人員可能對asp都比較熟悉,asp可以和com,com+結合起來應用而com就是基于微軟的一種組件技術。說這種技術高深也好,易用也罷,從我這里認為,組件開發(fā)技術就是提供給應用程序一組高可用性的代碼。什么是可用性?在英文里就是reuse。專業(yè)一點就是代碼重用。CFC也不例外,通過簡單的將許多不同功能的cfml代碼段進行一定邏輯的組合,并賦予不同的訪問方式,就構成了CFC。那么CFC相比對于以前的CF的自定義標簽又有什么優(yōu)勢和不同?CFC最大的優(yōu)點就是不包含表現(xiàn)性質的代碼,也就是說,一個CFC具有某種純粹的邏輯,然后通過不同的調用方式和附加性的修飾標簽來呈現(xiàn)給外部不同的結果,是完全符合web技術開發(fā)的需求,那就是表現(xiàn)與邏輯分離。而,custom tag則不是這樣,它是構造一個Function,可以把表現(xiàn)與邏輯混在一起,通過其他cfm頁面的操作來呈現(xiàn)結果。還有一個不同是CFC是一種對象,具有不同的訪問方式,也具有了method的入口操作方式,也具有了參數控制方式。如果上面這部分解釋理解比較吃力的話,那么我們用一個經常開發(fā)的模塊來說明問題。我們經常在開發(fā)互動性網站的時候,經常會開發(fā)用戶注冊和驗證模塊,按照一般的開發(fā)方式,會有很多個頁面,比如login.cfm、checkuser.cfm等等一堆的頁面來進行用戶的登錄(注冊)操作。我們的邏輯代碼會寫在所有的需要處理的后臺文件中。那么會出現(xiàn)何種煩雜的現(xiàn)象?用<cfquery>組成不同的數據庫操作代碼段來進行用戶名和密碼的查找,返回查找結果,進行form表單輸入值和數據庫結果的驗證,通過不同頁面上的不同的嵌入性的邏輯代碼來相應用戶的不同操作。這樣的開發(fā)方式不是不可以,但是我們建議cf開發(fā)人員采用一種更先進的開發(fā)方式CFC進行相應功能的開發(fā)。那么開發(fā)相同功能模塊的CFC是一種什么樣子的開發(fā)思路呢?我們可以把需要的代碼段集合在一起,通過特有的構成CFC的Tag把這些代碼段變成特有的Components,另外,賦予它們不同的method。還是針對用戶注冊和登錄驗證的功能模塊,我們換成這種思路:

l         定義一個user object,把所有對于用戶的通用操作封裝在這個object里

l         定義對于user object的操作方法,例如add(),delete(),update(),get()等等一些通用的操作方法,同樣也可以再增加一些,例如verifyPassword(),GetEmail()等等。

l         對于不同用戶傳遞不同的參數給特定的方法來實現(xiàn)相應功能。

好了,不用我說了,大家已經可以分辨出使用CFC的優(yōu)點:可用性強,開發(fā)效率高,擴展性強。

那么,我們用什么來構造一個CFC呢?很復雜?令人頭疼?都不是,用基本的cfml語法知識,外加幾個特定的構造CFC的tag就可以實現(xiàn)了。那么構造CFC的幾個tag如下:

l         <CFComponent>定義一個CFC

l         <CFFunction>定義一個CFC中的操作方法(method)

l         <CFArgument>定義method接收的參數

l         <CFReturn>返回一個值,或者從method返回。

我們現(xiàn)在構造一個非常簡單的cfc,看下面的代碼:

<!--- Browser id component --->
<CFCOMPONENT>
    <!--- Is the browser IE? --->
    <CFFUNCTION NAME="IsIE">
                               <!--- Init variable --->
                               <CFSET result="No">
                               <!--- Look for IE identifier --->
                               <CFIF FindNoCase("MSIE", CGI.HTTP_USER_AGENT)>
                                              <!--- Yep, got it --->
                                              <CFSET result="Yes">
                               </CFIF>
                               <!--- Return result --->
               <CFRETURN result>
               </CFFUNCTION>
</CFCOMPONENT>

文件存儲成為browser.cfc,我們大家可以看到,所有的cf代碼在<cfcomponent></cfcomponent>標簽之間。這個cfc有一個Function叫做IsIE,目的是判斷瀏覽器的類型。默認的結果是No,那么如果檢測出有MSIE這個串(不分大小寫),結果為true。這個Function返回的值就是result。很簡單是不是?

在構造好browser.cfc這個Component之后,如何應用這個browser.cfc呢?在存放browser.cfc的目錄下再生成一個test.cfm文件,這個文件中的代碼使用下面的編寫方式:

<!--- Invoke browser CFC --->
<CFINVOKE COMPONENT="browser"
                     METHOD="IsIE"
                     RETURNVARIABLE="result_ie">

<!--- Feedback --->
<CFOUTPUT>
Your browser is:<BR>
IE: #YesNoFormat(result_ie)#<BR>
</CFOUTPUT>

之后執(zhí)行test.cfm這個文件,得到的結果是:

Your browser is:
IE: Yes

Test.cfm這個文件使用了<cfInvoke>這個標簽調用了browser這個cfc,并且調用了IsIE這個方法,返回的值是使用result_ie。上面的cfc只是一個判斷ie瀏覽器的程序,下面來個全的:

<CFCOMPONENT>

<!--- Is the browser IE? --->

<CFFUNCTION NAME="IsIE"

       RETURNTYPE="boolean"

       HINT="Is browser Microsoft IE">

<!--- If no browser id passed, used current --->

<CFARGUMENT NAME="browser"

       REQUIRED="no"

       DEFAULT="#CGI.HTTP_USER_AGENT#"

       HINT="Browser ID, defaults to CGI ID">

<!--- Init variable --->

<CFSET result="No">

<!--- Look for IE identifier --->

<CFIF FindNoCase("MSIE", browser)>

  <!--- Yep, got it --->

  <CFSET result="Yes">

</CFIF>

<!--- Return result --->

<CFRETURN result>

</CFFUNCTION>

<!--- Is the browser Netscape? --->

<CFFUNCTION NAME="IsNetscape"

       RETURNTYPE="boolean"

       HINT="Is browser Netscape">

<!--- If no browser id passed, used current --->

<CFARGUMENT NAME="browser"

       REQUIRED="no"

       DEFAULT="#CGI.HTTP_USER_AGENT#"

       HINT="Browser ID, defaults to CGI ID">

<!--- Init variable --->

<CFSET result="No">

<!--- Look for Netscape identifier and no IE identifier --->

  <CFIF FindNoCase("mozilla", browser) AND NOT FindNoCase("MSIE", browser)>

  <!--- Yep, got it --->

    <CFSET result="Yes">

  </CFIF>

<!--- Return result --->

<CFRETURN result>

</CFFUNCTION>

<!--- Is the browser Dreamweaver? --->

<CFFUNCTION NAME="IsDreamweaver"

       RETURNTYPE="boolean"

       HINT="Is browser Dreamweaver">

<!--- If no browser id passed, used current --->

<CFARGUMENT NAME="browser"

       REQUIRED="no"

       DEFAULT="#CGI.HTTP_USER_AGENT#"

       HINT="Browser ID, defaults to CGI ID">

<!--- Init variable --->

<CFSET result="No">

<!--- Look for DW identifier --->

 <CFIF FindNoCase("mmhttp", browser)>

   <!--- Yep, got it --->

   <CFSET result="Yes">

 </CFIF>

<!--- Return result --->

<CFRETURN result>

</CFFUNCTION>

<!--- Identify a browser

       Returns: IE - Internet Explorer

                            NS ?Netscape

                            DW ?Dreamweaver

                            Empty string is unknown

--->

<CFFUNCTION NAME="Identify"

       RETURNTYPE="string"

       HINT="Identify a browser">

<!--- If no browser id passed, used current --->

<CFARGUMENT NAME="browser"

       REQUIRED="no"

       DEFAULT="#CGI.HTTP_USER_AGENT#"

       HINT="Browser ID, defaults to CGI ID">

<!--- Init variable --->

<CFSET result="">

<CFIF IsIE(browser)>

  <CFSET result="IE">

<CFELSEIF IsNetscape(browser)>

  <CFSET result="NS">

<CFELSEIF IsDreamweaver(browser)>

  <CFSET result="DW">

</CFIF>

<!--- Return result --->

<CFRETURN result>

</CFFUNCTION>

</CFCOMPONENT>

上面的第2個CFC復雜了一些,我們覆蓋存儲成為browser.cfc,這個cfc中包含了4個Function(method):

IsIE,測試瀏覽器是否為MS的瀏覽器;IsNescape測試是否是Nescape(mozilla)瀏覽器;IsDreamweaver測試是否內嵌Dreamweaver;Identify返回所有的結果,如果以上3種都不是,返回空串。程序還為CFFunction添加了兩個新的屬性:ReturnType是對返回值的一個類型確認(validate),如果不是ReturnType所描述的類型,將會顯示一個錯誤。另外,我們的Function中還添加了<CFArgument>這個標簽,來設定BrowserID這個值,而且設定Required屬性為no是保證有檢測不出來的browserid的時候,提供一個默認的CGI ID。如果required的屬性設定為yes,那么特定的參數傳遞如果不符合要求,就會報錯。我們可以通過下面的這個test.cfm程序來調用上面的這段復雜的browser.cfc:

<!--- Check for IE --->

<CFINVOKE COMPONENT="browser"

       METHOD="IsIE"

       RETURNVARIABLE="result_ie">

<!--- Check for Netscape --->

<CFINVOKE COMPONENT="browser"

       METHOD="IsNetscape"

       RETURNVARIABLE="result_ns">

<!--- Check for DW --->

<CFINVOKE COMPONENT="browser"

       METHOD="IsDreamweaver"

       RETURNVARIABLE="result_dw">

<!--- Identify browser --->

<CFINVOKE COMPONENT="browser"

       METHOD="Identify"

       RETURNVARIABLE="result_id">

<!--- Feedback --->

<CFOUTPUT>

Your browser is:<BR>

IE: #YesNoFormat(result_ie)#<BR>

NS: #YesNoFormat(result_ns)#<BR>

DW: #YesNoFormat(result_dw)#<BR>

ID: #result_id#<BR>

</CFOUTPUT>

顯示的結果為:

Your browser is:
IE: Yes
NS: No
DW: No
ID: IE

其實我們可以用兩種方式從內部觀察一個cfc,第一種就是通過直接的url訪問。上面第2個最終的browser.cfc在我本機的url為:

http://localhost:8500/cfdev/browser.cfc

輸入這個url后,會先看到cf administrator的界面,輸入登錄的密碼后,系統(tǒng)會報告一個browser.cfc的詳細信息給開發(fā)人員,截圖如下:

上圖詳細的介紹了這個cfc的結構和詳細信息,想要看到這個前提是必須有cf server administrator的密碼權限哦!

第二種方法就是通過dwmx來import這個cfc,從而可以看到dwmx會自動的識別出這個CFC了:

然后我們從組件這個面板里直接把所需要調用的cfc method直接drap & drop到右邊的編程區(qū)域里去,就可以了。

第三部分 資源列表

相關于Macromedia MX系列知識的了解請訪問:

http://www.macromedia.com

http://www.macromediachina.com

http://www.flashempire.net

http://m.95time.cn

關于Macromedia 產品策略分析中文文章請訪問:

http://61.156.17.126/efe_news/newsread.php?id=123

下載Macromedia MX系列產品請訪問:

http://www.macromedia.com/software/trial_download/

* Macromedia ColdFusion MX和JRun4可以免費在官方網站得到開發(fā)者版本,同商業(yè)版本相比,只是限制了開發(fā)者版本的ip訪問限制,服務器高級報表工具,服務器均衡負載功能等一些高級功能的使用。

注釋:

JRun4、ColdFusion MX、Flash MX、Dreamweaver MX、Fireworks MX都是Macromedia公司的注冊產品。

出處:藍色理想
責任編輯:藍色

上一頁 第四期:ColdFusionMX Basic Tag編程 下一頁

◎進入論壇網絡編程版塊參加討論

作者文章 更多作者文章
cfquery簡單的偵測效率方法
Flash的Debug程序AdminTool
ColdFusionMX技術課程第三期
ColdFusionMX技術課程第二期
ColdFusionMX技術課程第一期
關鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設計比賽 網頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大福“敬•自然”設計大賽開啟
國際體驗設計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數企業(yè)唯一擁抱互聯(lián)網的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯(lián)網觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標
數據同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:5/51個記錄/頁 轉到 頁 共5個記錄

藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。

轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯(lián)系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內容無關的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網上道德,遵守中華人民共和國的各項有關法律法規(guī)
·承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
·本站評論管理人員有權保留或刪除其管轄評論中的任意內容
·您在本站發(fā)表的作品,本站有權在網站內轉載或引用
·參與本評論即表明您已經閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內容
網站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網站UI 設計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設計》
犀利開發(fā)—jQuery內核詳解與實踐
作品集 更多內容

雜⑦雜⑧ Gold NORMANA V2