亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ashx一般處理程序在ASP.NET Ajax中的應用

        2020-08-06 00:58:48
        淮北職業(yè)技術學院學報 2020年4期
        關鍵詞:處理程序用戶名服務器端

        馮 菁

        (淮北職業(yè)技術學院 計算機科學與技術系,安徽 淮北 235000)

        0 引言

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

        1 ASP.NET Ajax架構

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

        1.1 ASP.NET Ajax組成

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

        在Ajax應用中,Ajax引擎相當于中間通訊層,Web頁面HTTP請求通過Ajax引擎與服務器端進行通信,響應返回的結果提交給Ajax引擎,再由Ajax引擎來決定將這些數(shù)據(jù)顯示到頁面的指定位置.在Ajax中,變成對Ajax引擎的一次調用.只對部分頁面進行更新。[3]

        Ajax Web頁面的工作過程如圖1所示:

        圖1 Ajax工作過程

        2 ashx一般處理程序

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

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

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

        具體設計思路如下:

        (1)需要一個一般處理程序.ashx,傳入用戶名進行檢索,設計Select語句,如果用戶名已使用或未使用返回一個不同值的標識變量。

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

        3.1 注冊界面

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

        圖2 注冊頁面界面

        3.2 一般處理程序isName.ashx

        使用.ashx文件(一般處理程序)實現(xiàn)IHTTPHandler接口,不像aspx要繼承Page類,處理控件和事件等, HttpHandler是HTTP請求的真正處理中心,直接用于處理客戶端發(fā)送來的請求,并將服務器端的處理結果返回給客戶端.ashx文件的具體處理過程要比aspx要簡單得多。

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

        關鍵代碼如下: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ù)庫;

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

        查找結果放入boolName真假值;

        3.3 JQuery使用

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

        關鍵代碼如下:

        function CheckUsername() {

        strName獲取文本框的值;

        flag開關;

        $.ajax({

        ……

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

        success: function(msg) {

        {根據(jù)返回信息,給出用戶名是否可用,并設置開關flag}

        返回flag

        }

        3.4 運行效果

        頁面即時出現(xiàn)提示用戶名是否可用,用戶無刷新抖動的感覺。

        圖3 用戶名檢測即時效果

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

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

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

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

        5 總結

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

        .ashx文件也有缺點,它處理控件的回發(fā)事件非常麻煩,需自己手動完成;并且它只能處理一個請求,如有多個請求需寫對應的多個ashx文件。

        猜你喜歡
        處理程序用戶名服務器端
        《護士進修雜志》投稿程序
        高速公路工程變更與計量支付處理程序的優(yōu)化方法
        淺析異步通信層的架構在ASP.NET 程序中的應用
        成功(2018年10期)2018-03-26 02:56:14
        機智的快遞員
        故事會(2017年17期)2017-09-04 17:36:42
        基于C++的數(shù)控加工通用后處理程序的開發(fā)應用研究
        企業(yè)危機公關管理問題分析
        在Windows中安裝OpenVPN
        地鐵直流系統(tǒng)中框架保護原理及處理程序
        網(wǎng)頁防篡改中分布式文件同步復制系統(tǒng)
        基于Struts的Web應用系統(tǒng)數(shù)據(jù)驗證
        中文字幕色资源在线视频| 人妻少妇av无码一区二区 | 日韩精品无码中文字幕电影| 亚洲av成人综合网| 91在线区啪国自产网页| 日本高清一区二区三区色| 人妖一区二区三区视频| 国产欧美va欧美va香蕉在| 无码精品a∨在线观看| 99热成人精品国产免国语的| 激情一区二区三区视频| 亚洲一区二区三区激情在线观看| (无码视频)在线观看| 情侣黄网站免费看| 亚洲精品aⅴ无码精品丝袜足| 国产白浆流出一区二区| 中文字幕隔壁人妻欲求不满| 国产精品美女久久久久av超清| 波多野吉衣av无码| 99久久久精品国产性黑人| 精品熟女av中文字幕| 强奸乱伦影音先锋| 性生交大全免费看| 国产av专区一区二区三区| 99国语激情对白在线观看 | 国产一女三男3p免费视频| 亚洲一区二区三区精品网| 中文字幕亚洲永久精品| 无码人妻久久久一区二区三区| av人摸人人人澡人人超碰妓女| 国产在线无码免费视频2021| 一本大道加勒比东京热 | 永久免费a∨片在线观看 | 国产av无码专区亚洲av男同 | 国产精品无码不卡一区二区三区| 久久午夜无码鲁丝片直播午夜精品| 亚洲中文乱码在线观看| 天堂8在线新版官网| 成人白浆超碰人人人人 | 色一情一乱一伦一区二区三区日本| 无码av一区在线观看|