發新話題

[教學]ASP=VBScript ?! No!!

[教學]ASP=VBScript ?! No!!

前言:

算一算,開始玩 ASP 也過了二個星期,也上網接觸了不少的資料,學習的同時,當然也習慣性的會發現一些別的初學者會有的問題及錯誤,當然,以我雞婆的個性,搞的定的當然也就會插一腳,想辨法幫別人解決。

不過,看了一堆問題後,發現一個最可怕的觀念題,居然連某些寫 ASP 很久了人,居然都依然是處在被誤導的狀態下,所以動了念頭寫篇文章。很久沒寫文件了,希望這篇文件可以幫助一些人,也希望看到這份文件的人,如果發現裡面有誤錯的地方,也請指教,一定馬上修正。

那就讓我們進入主題吧!

ASP = VBScript ?!

說實話,這還真是個可怕的錯誤!

其實,這個錯誤觀念的產生,可以說有大半責任來自所謂 ASP 的教本。由於在 ASP 本身,將 VBScript 預設為其編寫的 Script Language,而許多的教本上,雖然對 ASP 有詳細的講解,可是卻未在最初的部份,為讀者建立所謂 Server-Side Script and Client-Side Script 的完整概念,加上VBScript的方便編寫,許多教本便會以其為整本教材的基礎語法,以致於,許多人雖然學會了如何撰寫 ASP 程式,但卻誤以為只有看到 ,內部放的程式段才是 ASP 程式!而更甚者會認為,只有 VBScript,才能撰寫 ASP 程式。

其實所謂的 ASP,最正統的說法是,它是一個環境,並不是一個程式語言,但,我偏愛的說法是,你可以把它視為一個機制,而這個機制在 IIS 內,預設了二種程式言語來撰寫使用它的六個物件功能,而這二種程式語言便是 VBScript and JavaScript。

而,其實 ASP 與任何滿足 ActiveX Scripting 標準的語言相容,也就是說,只要你行,你可以在 IIS 安裝任何能跑出這個環境看得懂的碼的直譯器。

聽起來很簡單吧?可是仔細想想,好像又怪怪的對吧?

應該有些 ASP 初學者,學了 ASP 後,又開始學寫 <Script> 的部份,然後就突然發現,嚇!為什麼有些<Script>裡的東西,移到 不能用?嚇!為什麼我不能用<Script>呼叫裡的東西?然後就自己得到結論....喔~~反正<Script>就是和 ASP 不能共用變數函數嘛。如果再好死不死一點,學的Script language 是 JavaScript,這下好笑了.....喔~~反正 JavaScript 就是不能呼叫 ASP 咩....

好像對?疑,又好像有點怪怪的?不管了,反正,真的呼叫不到呀!

觀念很重要!

也許在進行某些比較小的 Job 時,不清楚的觀念還不會對你產生太大的影響,又也許也還是依然能完成工作,但常常會覺得,別人解問題很容易,你想問題老是想到死結去,那就是你的觀念,應該要再建立的更清楚一點了。

下一節,我們來建立一個重要的觀念 Server-Side Script V.S Client-Side Script。

Server-Side Script V.S Client-Side Script

首先,先用一句話把 ASP 幹掉。

ASP 內撰寫便是一種 Server-Side Script

讓我們先建立一個觀念,Server-Side Script 故名思義,是一個只在 Server 端執行的 Script,而我們的 Browser 在瀏灠一個網頁時,便會向 Server 取得網頁,然後在將其內的資料解碼,顯示給你看。

發現了嗎?其實,所謂的 ASP,在你的 Browser 取得網頁後,便已經變成資料,而不是程式碼了,它可能是變成一段 Html 也可能是變成一段 JavaScript、VBScript 等等東西,但,它就只是一段,寫在你下載的網頁內的「文字」,甚至,如果這段 ASP 不輸出任何資訊給 Browser,你只要開啟網頁的原始碼,便會發現....什麼都沒有!ASP 消失的一乾二淨!

有沒有記起一些書上說過的話?那時,可能只是讀過去,也沒有特別注意,但是,現在有沒有又想起來呢?

所以有人就會開始說,對啊,我早就知道了!

沒錯,早就該知道了,所謂的 ASP 網頁,當它進入到你的 Browser 時,便會將 ASP 的部份,都轉換成它該有的型式,該輸出成字串的就輸出,該做某些動作(比如資料庫存取)的就一做,然後,你的 Browser 剩下的就只有 Html、XML、Script 還有其它有的沒有的,但,相信我,就是不會再找到 ASP 了,連屍體都沒有。

所以,你又要如何去用在 Browser 執行的東西,去呼叫一個對它來講,根本不存在的東西呢?而所謂的 Client-Side Script,就是泛指這些,在你的 Browser 上,依它取得的網頁內的資料、程式(Script),來執行的程式段。

所以,我們現在可以簡單的建立幾個觀念:



    1.VBScript 及 JavaScript 都只是一種語法,不管是 Server-Side 或者是 Client-Side 都能使用二者,要在 ASP 裡寫 JavaScript 有二個方法,一是在你程式的最上方輸入,另一個是使用 <Script Language="JavaScript" runat="Server"></Script>,別懷疑,<Script> 寫的也是 ASP,只要你加上 runat="Server",他就是所謂的 ASP,有把觀念建立起來了嗎?只要在你的 IIS Server 上跑的,就是ASP!


    2.ASP 這個環境,只提供了六個物件給我們用,所以,你別想把你常常在<Script>裡寫的那堆有的沒有的物件拿來用,你想想,在 Server端的時後,它根本不知道你是誰,他怎麼會去理你什麼 document.all ?這些 Client 端的物件是由Browser 所提供你使用的,也就是說,你一樣可以使用 VBScript 或者是 JavaScript 來取用它!當然,你 Client-Side的東西,就別去肖想 Server-Side 的任何玩意囉..


    3.不過,有個叫 Remote Scripting 的技術完全推翻上面的東東.. =.=b 好玩吧,這個技術可以讓你以 Client-Side 去呼叫 Server-Side,不過在這裡就不詳述了,畢竟這是要另外 include 一些檔才能使用的技術,而且也不是每個 Browser 都支援的很完整。


[ 本帖最後由 philxyz0316 於 2006-7-23 21:15 編輯 ]

TOP

看過之後對asp又有從新的認識了
看來我學的都只是皮毛而已qQ

TOP

ASP似乎微軟不再做更新,新的是ASP.NET,大大貼的也是一個知識。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。