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

ashx一般處理程序在ASP.NET Ajax中的應(yīng)用

2020-08-06 00:58:48
關(guān)鍵詞:引擎頁(yè)面用戶

馮 菁

(淮北職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系,安徽 淮北 235000)

0 引言

ashx一般處理程序,可用它來(lái)處理Ajax請(qǐng)求,通過(guò)繼承HttpHandler類(lèi)(或是實(shí)現(xiàn)IHttpHandler接口),從而免去了普通aspx頁(yè)面控件解析以及頁(yè)面處理的過(guò)程。[1]NET Framework在默認(rèn)情況下,把a(bǔ)spx WEB頁(yè)面的Request請(qǐng)求交給HttpHandlerFactory來(lái)處理的,當(dāng)頁(yè)面的一個(gè)HTTP請(qǐng)求到達(dá)時(shí),HttpHandlerFactory會(huì)提供出一個(gè)HttpHandler容器,HTTP請(qǐng)求最終交給HttpHandler容器中的ProcessRequest方法來(lái)處理的。Ajax是Asynchronous JavaScript and XML的縮寫(xiě),即異步JavaScript和XML技術(shù)。[2]通過(guò)該技術(shù)的使用,實(shí)現(xiàn)了頁(yè)面的局部刷新,減小了網(wǎng)絡(luò)流量,改善用戶體驗(yàn),提升了系統(tǒng)的運(yùn)行速度。在ASP.NET中結(jié)合使用JQuery+ashx一般處理程序,實(shí)現(xiàn)Ajax技術(shù)。

1 ASP.NET Ajax架構(gòu)

ASP.NET Ajax使得Ajax程序設(shè)計(jì)變得簡(jiǎn)單,使用ASP.NET中的Ajax可快速創(chuàng)建包含具有快速響應(yīng)能力且熟悉的用戶界面元素的網(wǎng)頁(yè),豐富了用戶的體驗(yàn)。[2]ASP.NET Ajax中的JavaScript是跨平臺(tái)的,支持多個(gè)瀏覽器,不會(huì)因PostBack而讓整個(gè)頁(yè)面重新加載造成閃動(dòng),可以實(shí)現(xiàn)Web頁(yè)面局部更新,異步取回服務(wù)器端的數(shù)據(jù),用戶無(wú)需等待也不被打斷,提升頁(yè)面響應(yīng)能力。

1.1 ASP.NET Ajax組成

ASP.NET Ajax主要有四個(gè)部分,Ajax服務(wù)器端控件、Ajax服務(wù)器端擴(kuò)展控件、Ajax服務(wù)器端遠(yuǎn)程Web Service橋、Ajax客戶端代理。[3]ASP.NET從4.0版開(kāi)始,完全集成了Ajax框架,在Visual Studio 2010及以上版本中工具箱里就可以找到Ajax控件.ASP.NET Ajax客戶端架構(gòu)主要有API、API函數(shù)、基礎(chǔ)類(lèi)庫(kù)、封裝的XMLHttpRequest對(duì)象、Ajax XML引擎、ASP.NET Ajax客戶端控件等。[3]

在Ajax應(yīng)用中,Ajax引擎相當(dāng)于中間通訊層,Web頁(yè)面HTTP請(qǐng)求通過(guò)Ajax引擎與服務(wù)器端進(jìn)行通信,響應(yīng)返回的結(jié)果提交給Ajax引擎,再由Ajax引擎來(lái)決定將這些數(shù)據(jù)顯示到頁(yè)面的指定位置.在Ajax中,變成對(duì)Ajax引擎的一次調(diào)用.只對(duì)部分頁(yè)面進(jìn)行更新。[3]

Ajax Web頁(yè)面的工作過(guò)程如圖1所示:

圖1 Ajax工作過(guò)程

2 ashx一般處理程序

一般處理程序HttpHandler是一種.NET WEB組件,擴(kuò)展名為.ashx 文件,采用它來(lái)處理Ajax請(qǐng)求,當(dāng)文件需要?jiǎng)討B(tài)返回來(lái)自查詢字符串或XML和其它非HTML網(wǎng)頁(yè)的圖像時(shí)。采用JQuery和.NET技術(shù),ashx頁(yè)面接收參數(shù),然后返回值.瀏覽頁(yè)面時(shí)是無(wú)法看到編寫(xiě)的源代碼的.a(chǎn)shx文件在.NET中要繼承IHttpHandler接口,該接口里有IsReusable成員,指定IHttpHandler實(shí)例是否可以用來(lái)處理多個(gè)請(qǐng)求、方法ProcessRequest(HttpContext context)處理接受到的Http請(qǐng)求。

3 Ajax+ashx實(shí)現(xiàn)頁(yè)面異步加載

各類(lèi)WEB應(yīng)用中都有數(shù)據(jù)庫(kù)的訪問(wèn)操作,注冊(cè)是一個(gè)常用的功能。應(yīng)用Ajax設(shè)計(jì)ASP.NET Web注冊(cè)頁(yè)面,Ajax無(wú)刷新感檢測(cè)用戶名。測(cè)試用戶名是否重名,只刷新部分頁(yè)面。

具體設(shè)計(jì)思路如下:

(1)需要一個(gè)一般處理程序.ashx,傳入用戶名進(jìn)行檢索,設(shè)計(jì)Select語(yǔ)句,如果用戶名已使用或未使用返回一個(gè)不同值的標(biāo)識(shí)變量。

(2)使用JQuery的ajax,這里使用JQuery.get()方式,請(qǐng)求剛才的ashx文件,并將用戶名作為參數(shù)傳過(guò)去,get()是Request.QueryString接收,Ajax過(guò)程完成之后會(huì)返回標(biāo)識(shí)變量,再根據(jù)此標(biāo)識(shí)確定是否可以使用新填寫(xiě)的注冊(cè)用戶名。

3.1 注冊(cè)界面

注冊(cè)界面設(shè)計(jì)如圖2所示:需在網(wǎng)站主目錄中添加JQuery插件jquery-1.4.1-vsdoc.js, 在頁(yè)面加上JQuery插件.

圖2 注冊(cè)頁(yè)面界面

3.2 一般處理程序isName.ashx

使用.ashx文件(一般處理程序)實(shí)現(xiàn)IHTTPHandler接口,不像aspx要繼承Page類(lèi),處理控件和事件等, HttpHandler是HTTP請(qǐng)求的真正處理中心,直接用于處理客戶端發(fā)送來(lái)的請(qǐng)求,并將服務(wù)器端的處理結(jié)果返回給客戶端.a(chǎn)shx文件的具體處理過(guò)程要比aspx要簡(jiǎn)單得多。

繼承IHttpHandler接口,重寫(xiě)ProcessRequest方法(),并添加數(shù)據(jù)庫(kù)里查找指定用戶名的方法IsNName().

關(guān)鍵代碼如下:public void ProcessRequest (HttpContext context) {

定義字符串變量resp;

string strName = context.Request.QueryString["userName"];

if (IsNName(strName))

{字符串resp變量值為”1”或”0”}

輸出數(shù)據(jù)(resp);

……

}

private bool IsNName(string strName)

{

bool boolName;

連接數(shù)據(jù)庫(kù);

查找用戶表是否有strName這條記錄;

查找結(jié)果放入boolName真假值;

3.3 JQuery使用

在注冊(cè)Web頁(yè)面中,用戶名文本框失去焦點(diǎn)事件CheckUsername(),HTML+JavaScript用$.ajax(url)這個(gè)函數(shù)發(fā)送數(shù)據(jù)到ashx文件,此文件用Request.QueryString[...]接收數(shù)據(jù)。

關(guān)鍵代碼如下:

function CheckUsername() {

strName獲取文本框的值;

flag開(kāi)關(guān);

$.ajax({

……

url: "../ajax/IsName.ashx?userName=" + encodeURI(strName),

success: function(msg) {

{根據(jù)返回信息,給出用戶名是否可用,并設(shè)置開(kāi)關(guān)flag}

返回flag

}

3.4 運(yùn)行效果

頁(yè)面即時(shí)出現(xiàn)提示用戶名是否可用,用戶無(wú)刷新抖動(dòng)的感覺(jué)。

圖3 用戶名檢測(cè)即時(shí)效果

4 其它技術(shù)實(shí)現(xiàn)Ajax.

在ASP.NET中實(shí)現(xiàn)Ajax,可根據(jù)個(gè)人習(xí)慣使用JavaScript、jquery插件,還可以選擇.NET自己封裝的Ajax控件,方法各有特點(diǎn)。

使用Ajax擴(kuò)展EXT 控件,優(yōu)勢(shì)在于支持UI,需安裝AjaxControlToolkit,或是需要添加引用System.Web.Extensions.dll。在建Ajax頁(yè)面時(shí)一定先添加ScriptManager控件, 執(zhí)行Ajax JavaScript庫(kù)的鏈接,才能讓Page局部更新起作用。[3]再添加UpdatePanel控件,并在其ContentTemplate內(nèi)容模板添加內(nèi)置控件、表格、HTML代碼等.這樣可以使用很少的客戶端腳本或不使用客戶端腳本就能創(chuàng)建豐富的客戶端行為,局部更新可避免整頁(yè)回發(fā)的開(kāi)銷(xiāo)。需要在Web.Config的元素中添加或修改元素。

NET Framework 4.0之前版本中使用ASP.NET Ajax ,需要在ScriptManager控件所在頁(yè)面,通過(guò)腳本調(diào)用Web 服務(wù),要指明Web服務(wù)所在的文件地址,[4]擴(kuò)展名為asmx Web Service文件,WebServices+JQuery可實(shí)現(xiàn)Ajax頁(yè)面部分刷新;在.NET Framework 4.0以后版本Ajax中調(diào)用WCF服務(wù)。

5 總結(jié)

通過(guò)ashx來(lái)調(diào)用HttpHandler類(lèi),HttpHandler是一個(gè)徹底自定義Http請(qǐng)求方法,ashx少了處理了html的過(guò)程。免去了普通.aspx頁(yè)面的控件解析以及頁(yè)面處理的過(guò)程,直接返回Web http請(qǐng)求想要返回的結(jié)果,速度快.a(chǎn)shx文件適合產(chǎn)生供瀏覽器處理的、不需要回發(fā)處理的數(shù)據(jù)格式,例如生成動(dòng)態(tài)圖片、動(dòng)態(tài)文本等內(nèi)容。

.ashx文件也有缺點(diǎn),它處理控件的回發(fā)事件非常麻煩,需自己手動(dòng)完成;并且它只能處理一個(gè)請(qǐng)求,如有多個(gè)請(qǐng)求需寫(xiě)對(duì)應(yīng)的多個(gè)ashx文件。

猜你喜歡
引擎頁(yè)面用戶
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
藍(lán)谷: “涉藍(lán)”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
關(guān)注用戶
關(guān)注用戶
關(guān)注用戶
無(wú)形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開(kāi)發(fā)
如何獲取一億海外用戶
同一Word文檔 縱橫頁(yè)面并存
主站蜘蛛池模板: 亚洲精品日产精品乱码不卡| 国产成人免费| 国产综合精品日本亚洲777| 理论片一区| 国产成人综合在线观看| 爱做久久久久久| 456亚洲人成高清在线| 亚洲美女久久| 国产成人免费视频精品一区二区| 激情综合网址| 欧美特级AAAAAA视频免费观看| 伊人精品成人久久综合| 亚洲欧洲国产成人综合不卡| 国产激情无码一区二区免费| 18禁影院亚洲专区| 1024国产在线| 亚洲国产日韩在线观看| 欧美成人日韩| 香蕉久人久人青草青草| 亚洲综合色婷婷中文字幕| 欧美日韩专区| 中国美女**毛片录像在线 | 日韩天堂视频| 福利在线一区| 91视频99| 亚洲精品无码在线播放网站| 久久99精品久久久大学生| 免费人成网站在线高清| 亚洲无码熟妇人妻AV在线| 国产成人亚洲综合A∨在线播放| 综合网久久| 一级毛片免费观看不卡视频| 中国一级毛片免费观看| 国产精品林美惠子在线观看| 秋霞午夜国产精品成人片| 国产极品美女在线播放| 91福利在线看| 欧美va亚洲va香蕉在线| 99re在线免费视频| 日韩精品专区免费无码aⅴ| 无码又爽又刺激的高潮视频| 无码AV动漫| 国产精品视频第一专区| 91色综合综合热五月激情| 久久99热这里只有精品免费看 | 午夜老司机永久免费看片| 国产精品无码久久久久久| 五月婷婷精品| 亚洲乱码精品久久久久..| 久久精品娱乐亚洲领先| 亚洲精品自产拍在线观看APP| 在线国产你懂的| 日韩在线网址| 精品国产乱码久久久久久一区二区| 麻豆国产精品视频| 在线观看国产小视频| 中文成人在线视频| 久久精品人人做人人爽97| 欧美日韩免费| 国产av无码日韩av无码网站| 伊人福利视频| 欧美在线综合视频| 亚洲免费成人网| 亚洲人成人无码www| 欧美在线精品怡红院| 五月天香蕉视频国产亚| AV老司机AV天堂| 91毛片网| 午夜日b视频| 欧美日韩激情在线| 国产chinese男男gay视频网| 思思热在线视频精品| 蜜臀av性久久久久蜜臀aⅴ麻豆| 午夜福利无码一区二区| 91外围女在线观看| 国产精品页| 成人亚洲天堂| 亚洲精品不卡午夜精品| 亚洲综合中文字幕国产精品欧美| 国产视频a| 伊人久综合| 国产玖玖视频|