999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

客戶端和服務器端語言混合使用兩例

2008-12-31 00:00:00李志宏
網絡與信息 2008年7期

隨著全球信息網應用的普及,越來越多的公司、個人希望通過此傳播媒介發展業務。同時,對于系統的智能化、人性化設計要求也與日上升,JavaScript和動態頁面語言的混合應用也因此得以廣泛推廣。

JavaScript 是一種腳本語言,此語言可以被嵌入 HTML 的文件之中。透過JavaScript 回應用戶所觸發的事件 (如:form對象的輸入和檢測) 而不用任何的網絡來回傳輸資料。當使用者輸入一項資料時,它不用經過傳給服務器端 (server) 處理,再傳回來的過程,便可直接被客戶端 (client) 的應用程序處理。

運行JavaScript的載體是客戶端,不但可以讓系統實時的與用戶進行交互,而且因為避免了網絡的傳輸,大大地加快運行速度和減輕服務器的負擔。而JavaScript令人著迷的地方是:通過語言的編寫,控制整個頁面當中的所有對象。它可以控制包括表單對象、頁面字體內容、圖片位置等屬性,使得頁面更為絢麗。

Web網頁具備強大的功能,在短短的幾年之間得以迅速的發展,動態網頁可以通過鏈接數據庫,使頁面內容根據用戶信息和數據庫內容,對其進行內容控制。但由于動態頁面語言是屬于服務器端(server)語言,每一次數據交換都必須經過網絡傳送、服務器計算、數據回傳三個步驟。因此,經常會出現由于網絡的關系導致數據傳送的延誤、出錯等現象。

為了使頁面的智能化得以進一步提高,頁面能夠根據用戶事件進行實時回應,將客戶端和服務器端的語言相結合成為了網絡語言編寫的新動向。

方法如下圖:

首先由服務器端動態頁面語言,如ASP、JSP等對數據進行記錄集的綁定,調出所有相關數據庫的內容。數據經過傳送后,暫存在JavaScript動態生成的數組當中。JavaScript根據用戶觸發的事件和信息,對數組中內容進行篩選后通過語言控制顯示在頁面中。

下面,筆者就以兩個例子說明JavaScript與ASP(VBScript)相結合的使用方法。

1 檢測網絡新用戶

在網絡應用中,用戶經常使用“注冊”這一功能,如電子郵箱、論壇用戶名等。如何使新注冊的用戶名不與已有的用戶名相沖突,并且實時地對用戶進行提示,避免提交后方可檢測的麻煩呢?這就需要將兩種語言相結合,相互補足。

具體操作步驟:

(1) 綁定記錄集,將數據庫中的所有用戶名進行調出

建立數據庫鏈接類型,通過SQL語句對數據中的“nname”(用戶名)字段內容進行綁定。綁定記錄集名為“R1”。

<%set obj=server.CreateObject(\"ADODB.Connection\")

obj.ConnectionString=\"provider=Microsoft.jet.oledb.4.0;data source=\"server.mappath(\"/book.mdb\")

obj.open

set R1=server.CreateObject(\"ADODB.Recordset\")

ms=\"SELECT nnameFROM bpass \"

R1.open ms,obj,1%>

(2) 建立JavaScript中的數組

由于用戶名的數量未知,因此建立動態數組“k”。

接下來,使用ASP語句對記錄集R1進行遍歷,將所有記錄集字段nname內容存放在數組當中。

以t作為標識,使新建一個數組單元便存放一個用戶名。

<script language=\"javascript\">

var k = new Array();

<%t=0

while (not R1.eof) %>

k[<%= t %>] = new Array('<%= R1(\"nname\") %>')

<% t=t+1

R1.movenext

wend%>

(3) 檢測新用戶名

由用戶觸發事件,調用自定義函數。

把注冊新用戶名,即頁面中用戶名輸入框中的值(form1.textfield.value),跟所有數組單元中內容進行匹對。

若用戶名已存在,退出循環,并在指定位置當中顯示出錯提示,否則提示用戶名可用。

function s()

{for(i=1;i<=<%= R1.recordcount %>;i++)

{

if (k[i-1]==form1.textfield.value)

{

document.getElementById(\"kk\").innerHTML=\"出錯,該用戶名已經被占用\"

break;}else{

document.getElementById(\"kk\").innerHTML=\"可用\"

}}}</script>

2 二級級聯的下拉列表

表單中的下拉列表,可以讓用戶直觀、準確地選擇所需要的信息。可是,一旦數量較多時,逐一拉選檢查并非一個明智之舉。不但效率較低,而且用戶使用起來也顯得比較笨拙。

二級級聯的方法就是把所有的選項進行分類,讓用戶先選擇類型,然后再選擇具體目標。如對學校各位老師的姓名進行選擇時,因為人數較多,即使按姓名排列的方法也較費時間。使用二級級聯方法,可先按照各人所屬科室進行分組。用戶在使用的時候,首先在第一個下拉列表中選擇科室,第二個列表中立即刷新為所屬人員列表。這樣,使系統的利用效率得以大大地增強,對于用戶的使用也更具人性化。

由于所有人員資料已經全部綁定在記錄集并存放在JavaScript的動態數組中,當用戶重選所屬科組,瀏覽器也不需再經過服務器的數據傳輸,而直接在客戶端里便可以完成人員列表的更新,用戶能更加直觀、迅速、準確地選擇目標選項,這也是ASP和腳本語言相結合的優勢體現。

具體操作步驟:

(1) 綁定記錄集

將所有教師的姓名、科室取出,并綁定為記錄集。綁定方法與上例中的記錄集綁定方法一致,先建立數據庫的鏈接,再定義記錄集對象,最后執行SQL查詢語言“SELECT * from teachers”。

(2) 建立JavaScript中的二維動態數組

動態數組的建立方法與例一相同,不同之處在于本例中需要利用記錄集中的數據建立二維數組。如屬于筆者資料的二維數組內容為:subcat[177]=new Array(“計算機”,”李志宏”)。其一維內容“計算機”作為后面列表顯示內容的匹配條件,二維內容“李志宏”是作為第二列表的內容標簽和值。其中關鍵語句為二維數組的建立:

subcat[<%= t %>] = new Array('<%= R2(\"tkeshi\") %>','<%= R2(\"teaname\") %>')

(3) 人員列表更新函數

當用戶在列表一中選擇了科組后,觸發以下函數對人員列表內容進行更新:

function changeselect1(locationid)

{ document.form1.s2.length = 0;

document.form1.s2.options[0] = new Option('==請選擇==','');

for (i=0; i<subcat.length; i++)

{if (subcat[i][0] == locationid)

{document.form1.s2.options[document.form1.s2.length] = new Option(subcat[i][1], subcat[i][1]);}

}

}

循環動態數組,將一維內容與列表一傳送的參數locationid進行匹配,利用“new Option”命令把二維內容添加至列表二中,并設為當前選項的值。這樣,通過用戶所選取的科組內容,經過循環,腳本函數可以自動地給列表二更新內容。而這一切,完全由客戶端完成,免去了對數據庫的多次調用。

由服務器端語言負責數據庫的調用,客戶端語言負責與用戶交互。因此系統可以自動地根據用戶的事件進行即時的反應或提醒,使系統顯得更加“人性化”。而現今網絡使用管理中,“智能化”、“高效率”是今后網絡編程發展的大趨勢。因此怎樣通過結合各種不同的網絡編程語言來進行優化網頁的使用管理已成為我們共同關注的話題,而JavaScript與ASP(VBScript)相結合的使用亦成為我們解決實際難題的主要方法。

——————————

作者簡介:李志宏(1981-),廣州市人,于廣州第一商業中專學校任教師。主要研究方向:網頁制作、網站建設。

主站蜘蛛池模板: 久久黄色小视频| 亚洲欧洲日韩综合色天使| 国产精品所毛片视频| 欧美精品不卡| 国产成人综合在线观看| 99精品视频九九精品| 一区二区三区成人| 九九热精品免费视频| 国产精品福利在线观看无码卡| 91在线精品免费免费播放| 久久综合丝袜日本网| 中文字幕欧美日韩| 久久久久久尹人网香蕉| 在线观看欧美国产| 无码专区国产精品一区| 国内精品小视频在线| 国产无人区一区二区三区| 日韩毛片在线播放| 在线观看精品自拍视频| 日本影院一区| 在线99视频| 亚洲h视频在线| 天天综合网在线| 国产69囗曝护士吞精在线视频| 国产成人免费观看在线视频| 98超碰在线观看| 国产精品无码AⅤ在线观看播放| 日韩 欧美 小说 综合网 另类| 久久久久免费精品国产| 亚洲精品老司机| 日韩午夜伦| 综合网久久| 日韩免费毛片| 欧美一区二区三区欧美日韩亚洲 | …亚洲 欧洲 另类 春色| 人妻精品全国免费视频| 国产综合精品一区二区| 91久久夜色精品国产网站| 国产成人在线小视频| 国产成人综合在线观看| 成人在线视频一区| 亚洲精品无码专区在线观看| 片在线无码观看| 免费看的一级毛片| 亚洲国产成人综合精品2020| 91色爱欧美精品www| 国产99热| 亚洲AⅤ波多系列中文字幕| 在线精品自拍| 99精品国产自在现线观看| 亚洲精品国产成人7777| 亚洲Av综合日韩精品久久久| 亚洲欧美日本国产专区一区| 国产女人18水真多毛片18精品| 精品国产中文一级毛片在线看 | 18禁黄无遮挡网站| 久久综合九九亚洲一区| 亚洲精品午夜天堂网页| 国产导航在线| 日本高清免费一本在线观看| 久久精品人人做人人爽| 国产日本一线在线观看免费| 亚洲精品无码久久毛片波多野吉| 久久久久无码国产精品不卡| 99久久国产自偷自偷免费一区| 亚洲欧洲自拍拍偷午夜色无码| 精品国产免费观看一区| 国产成人综合久久精品尤物| 日本成人一区| 国产成人三级| 久久国产亚洲偷自| 99re视频在线| 日韩免费成人| 日本高清免费不卡视频| 国产成人资源| 黄片一区二区三区| 国产成人亚洲欧美激情| 国产精品自在在线午夜区app| 日韩午夜片| 日本人妻丰满熟妇区| 欧洲亚洲欧美国产日本高清| 国产免费一级精品视频|