Download presentation
Presentation is loading. Please wait.
Published byAmanda Kouki Modified 5年之前
1
張智星 jang@mirlab.org http://mirlab.org/jang 台大資工系 多媒體檢索實驗室
第十三章 函數與程式碼的重複使用 張智星 台大資工系 多媒體檢索實驗室
2
本章大綱 大綱 本章介紹 ASP 的函數,並說明如何將 JScript 函數或程式片段定義於一個檔案,以便重複使用。甚至,我們可以使用一個函數定義檔,同時可讓伺服器端和用戶端來呼叫,達到事半功倍之效。 主題 13-1:函數 13-2:函數定義檔的使用
3
13-1:函數 本小節將介紹函數用途與應用。
4
用途與作法 用途 若要建立大型應用程式,程式碼要能模組化(Modularized)以提高重複使用度(Reusability)。 作法
注意程式碼的重複性 將重複的部分寫成函數(函式),以便重複使用,省時省力。
5
範例13-1 主題:JScript 函數範例(計算由 1 至 20 的總和)
Webpage: remote host, local host 程式碼重點 說明 類似C語言的語法。 以函數將計算過程模組化。 function sum(n) { var i, total=0; for (i=1; i<=n; i++) total = total + i; return(total); }
6
範例13-2 主題: VBScript 函數範例(計算由 1 至 20 的總和)
Webpage: remote host, local host 程式碼重點 function sum(n) dim i, total total = 0 for i = 1 to n total = total + i next sum = total end function
7
JScript 和 VBScript 的不同 JavaScript 或 JScript 使用 var 來定義局部變數,VBScript 則是使用 dim 定義局部變數。 若函式沒有輸入引數,JScript 在呼叫此函式時,仍須在函式名稱後面加上小括弧,VBScript 則可不加括弧。
8
13-2:函數定義檔的使用 本小節簡單介紹如何使用函數定義檔。
9
函數定義檔 若要一再重複使用多個函數,可先將這些函數寫在函數定義檔,然後再將檔案導入 asp 網頁。 導入方法請見下頁。
10
如何引入函式定義檔? 方法一:使用 Server-side include (SSI) 程式碼:
說明: filename 是檔案的實體位置,需使用相對路徑。 說明:URLpath 是檔案的網址。 方法二:一箭雙雕法 說明:寫一份函式定義檔,可在伺服器和用戶端共用。 <!--#include file="filename"--> <!--#include virtual="URLpath"--> <script language=jscript runat=server src=filename></script>
11
SSI SSI 檔案的內容,也可包含 HTML 或用戶端的 JavaScript、VBScript 等。 特別注意:
SSI 並不是 ASP 的一部份:它透過 IIS/PWS 的 ssinc.dll 來處理,而 ASP 是由 asp.dll 來處理。 SSI 可以是巢狀的(Nested) :被包含的檔案仍可再包含其他檔案。 SSI 是在 ASP 前執行:不可用 ASP 產生被包含的檔案名稱。 SSI 不可寫在 <% ... %> 的標記內。 被 SSI 所導入的檔案,也可包含 HTML 的標籤。
12
範例13-3 (1/2) 主題:顯示現在時間(伺服端與客戶端分別引入不同定義檔)
Webpage: remote host, local host 程式碼重點 說明 用 client-side include 和 server-side include 加入一些與時間相關的函數。 引入timeFunctionRunAtClient.js和timeFunctionFunAtServer.inc兩個函式定義檔。 可使程式碼較為簡潔。 <script src="timeFunctionRunAtClient.js"></script> <!--#include file="timeFunctionFunAtServer.inc"-->
13
範例13-3 (2/2) timeFunctionRunAtClient.js (client-side include) 程式碼重點
timeFunctionRunAtServer.inc (server-side include) function currentTime(){ …… } function currentDay(){ …… } <% function currentTime(){ …… } function currentDay(){ …… } %>
14
範例13-4 (1/2) 主題:顯示現在時間(客戶端及伺服器端共用同一份定義檔)
Webpage: remote host, local host 程式碼重點 說明 客戶端及伺服器端都能執行這些函數。 方法很像 JavaScript 在用戶端所用的 client-side include。 無論是 client-side include 或是 server-side include,所加的函數定義檔都是 timeFunction.js。 <script language=jscript runat=server src="timeFunction.js"></script>
15
範例13-4 (2/2) 主題:timeFunction.js (引入時間函數的定義) 連結:remote host, local host
程式碼重點 說明 可同時使用在伺服器與用戶端。 適用此方法的函數定義檔,不可以包含 HTML 原始碼。 function currentTime(){ …… } function currentDay(){ …… }
Similar presentations