91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET2.0環境下的Ajax選型和應用

發布時間:2021-09-16 18:13:06 來源:億速云 閱讀:141 作者:chen 欄目:web開發

本篇內容介紹了“.NET2.0環境下的Ajax選型和應用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

主題:.NET2.0環境下的Ajax選型和應用

研究需要解決的問題:

1 Ajax 應用框架的選型及其性能對比

2 如何應用 Ajax

3 應用 Ajax 過程中應該著重注意的問題

一 Demo說明

Ajax Demo Web Site 是一個完整的 .NET Website ,其中包含 5 個 ASPX 頁面及其對應的 CS 文件。

為了方便對比, Demo 中使用了三種 Ajax 應用方式:

一是使用微軟提供的 Atlas 應用框架,二是使用 Ajax.NET Professional 開源框架,三是使用針對 Ajax 的單純的 Javascript 包 Prototype 。三者對應的關聯文件如下表所示:

應用方式

文件名稱

描述

 

Default.aspx

首頁導航,列出四個 Demo 頁面的鏈接

Atlas

AtlasDemo.aspx

使用 Atlas 實現 Product 的 CRUD 功能,通過 UpdatePanel 完成無刷新操作。

 



AjaxPro

AjaxProDemo.aspx

使用 Ajax.NET Pro 實現 Product 的 CRUD 功能,編輯、刪除操作返回 true/false 的結果,通過 .NET DataGrid 控件實現頁面數據列表的呈現( HTML )。

 


 

AjaxProDemoSecond.aspx

使用 Ajax.NET Pro 實現 Product 的 CRUD 功能,編輯、刪除操作返回所有的 Product 列表,通過 .NET DataGrid 控件實現頁面數據列表的呈現( HTML )。

 


Prototype

PrototypeDemo.aspx

使用 Prototype 實現 Product 的 CRUD 功能,編輯、刪除操作返回所有的 Product 列表, Client 和 Server 的數據以 JSON 格式傳輸。

 


 


 

Product.cs

Product 實體類

二 研究結論

1 Ajax 應用框架選型

Ajax 應用的核心是通過 XMLHttpRequest 對象向 Server 提交 Client 的請求,同步或者異步的獲取 Server 返回的 Response 信息,而 Client 和 Server 之前數據傳遞的方式可以采用 Text 、 XML 或者 JSON 格式。

Demo 中使用到的 Prototype 、 Ajax.NET Pro 、 Atlas Beta2 代表了目前 Ajax 應用的三種主要方式:

Prototype 是目前應用比較廣泛的最底層的遠程調用工具包,其通常使用自己的 API 封裝 XMLHttpRequest 對象,使得調用 XMLHttpRequest 更加簡單直觀。在 XMLHttpRequest 之前,我們通常使用內嵌的 IFRAME 來實現無刷新頁面發送 http 請求的效果。因此,這些遠程調用包必須支持那些不支持 XMLHttpRequest 的瀏覽器,以提高瀏覽器兼容性。類似的工具還比如 DOJO 。這類工具在應用過程中需要設定自己的 URL 和參數,并且編寫相應的 callback 函數來處理 Server 返回的 Response 結果。

在 PrototypeDemo.aspx 中,我們通過 Ajax.Request 向服務器提交請求,在 callback 函數中實現對 Server 的 Response 結果的處理和顯示。當然,每個請求的 URL 參數是不同的。

Ajax.NET Pro 則是一種基于基于代理實現的 Ajax 框架,其允許 Client 的 Javascript 直接與 Server 的類實現一一映射,使 Client 的 Javascript 可以通過他們直接訪問 Server 的類對象及其 API ,其訪問方式類似 RPC ,直接調用相應的 API 完成業務操作,仍然需要編寫相應的 callback 函數處理 Server 返回的 Response 結果。

在 AjaxProDemo.aspx.cs 中,我們通過在方法頭部添加 [AjaxPro.AjaxMethod] 標注,在 Page_Load 中將類以 AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxProDemo)) 的形式予以注冊, 這樣就可以在 Client 直接調用。

Atlas 則是基于組件的應用方式,其允許使用拖拉的方式在 IDE 的設計視圖中快速創建包含 Ajax 功能的組件,并且能夠最大程度的利用 .NET 本身提供的 DataGrid 、 Button 等 UI 控件。這些組件提供了快速開發 Ajax 應用的另一捷徑,開發過程不需要編寫 callback 函數。

就目前而言, Atlas 能夠利用最多的是 UpdatePanel 控件,通過其實現頁面的無刷新或者部分刷新。

2 Ajax 框架性能及開發效率對比

A 、數據流量

Demo 中的四個 Sample 都實現了針對 Product 的簡單 CRUD 功能。這里我們使用 Fiddler HTTP Debugger 來測試整個操作過程中 Client 和 Server 交互的數據量。

加載 Product List

請求 URL

數據流量

說明

Prototype

PrototypeServerResponse.aspx

?action=listProduct

Request Count:      1

Bytes Sent:     380

Bytes Received: 2,150

獲取 Product 列表,以 JSON 的格式返回,客戶端使用 Javascript 腳本處理呈現。

Ajax.NET Pro ( Second

ajaxpro/AjaxProDemoSecond,

App_Web_qgwv3twq.ashx

Request Count:      1

Bytes Sent:     493

Bytes Received: 1,392

獲取 Product 列表,以 HTML 的格式返回,客戶端直接呈現。

Atlas

AtlasDemo.aspx

Request Count:      1

Bytes Sent:     827

Bytes Received: 6,391

獲取 Product 列表, Server 完成 DataGrid 數據源綁定呈現。

刪除 Product

請求

數據流量

說明

Prototype

PrototypeServerResponse.aspx

?action=deleteProduct&productId=1

Request Count:      1

Bytes Sent:     446

Bytes Received: 1,891

傳送 ProductId ,完成刪除操作,并獲取 Product 列表到 Client 端呈現。

Ajax.NET Pro ( Second

ajaxpro/AjaxProDemoSecond,

App_Web_qgwv3twq.ashx

Request Count:      1

Bytes Sent:     504

Bytes Received: 1,300

調用遠程 RPC 接口,完成刪除操作,并獲取 Product 列表的 HTML 在 Client 端呈現。

Atlas

AtlasDemo.aspx

Request Count:      1

Bytes Sent:     2,287

Bytes Received: 5,913

觸發 Server 端的 Action 事件,完成刪除操作,需要 Postback 整個頁面。

獲取 Product Info

請求

數據流量

說明

Prototype

PrototypeServerResponse.aspx

?action=getProduct&productId=8

Request Count:      1

Bytes Sent:     443

Bytes Received: 403

傳送 ProductId ,獲取 JSON 格式的 Product 信息, Client 端完成解析并呈現。

Ajax.NET Pro ( Second

ajaxpro/AjaxProDemoSecond,

App_Web_qgwv3twq.ashx

Request Count:      1

Bytes Sent:     506

Bytes Received: 284

調用 RPC 接口,獲取 Text 格式的 Product 信息, Client 端完成解析并呈現。

Altas

AtlasDemo.aspx

Request Count:      1

Bytes Sent:     2,185

Bytes Received: 6,275

觸發 Server 端的 Action 事件,獲取 Product 信息,需要 Postback 整個頁面。

編輯 Product

請求

數據流量

說明

Prototype

PrototypeServerResponse.aspx

?action=updateProduct&productId=8

&productName=Sony&manufacturer=China

Request Count:      1

Bytes Sent:     482

Bytes Received: 1,877

傳送 ProductId 等參數,完成保存操作,并獲取 Product 列表。

Ajax.NET Pro ( Second

ajaxpro/AjaxProDemoSecond,

App_Web_qgwv3twq.ashx

Request Count:      1

Bytes Sent:     549

Bytes Received: 1,284

調用遠程 PPC 接口,完成保存操作,并獲取 HTML 格式的 Product 列表。

Atlas

AtlasDemo.aspx

Request Count:      1

Bytes Sent:     2,218

Bytes Received: 5,913

觸發 Server 端的 Action 事件,完成保存操作,需要 Postback 整個頁面。

增加 Product

請求

數據流量

說明

Prototype

PrototypeServerResponse.aspx

?action=addProduct&productName=Sony

&manufacturer=China

Request Count:      1

Bytes Sent:     467

Bytes Received: 2,050

傳送 ProductName 等參數,完成增加操作,并獲取 JSON 格式的 Product 列表。

Ajax.NET Pro

ajaxpro/AjaxProDemoSecond,

App_Web_qgwv3twq.ashx

Request Count:      1

Bytes Sent:     529

Bytes Received: 1,364

調用遠程 RPC 接口,完成增加操作,并獲取 HTML 格式的 Product 列表。

Atlas

AtlasDemo.aspx

Request Count:      1

Bytes Sent:     2,249

Bytes Received: 6,533

觸發 Server 端的 Action 事件,完成增加操作,需要 Postback 整個頁面。

結論:

從上述對比表中可以看到, Atlas 在實現無刷新的顯示過程中,還是需要 Postback 整個頁面,只是這個過程是以異步方式進行處理的;當 Server 端完成響應后, Atlas 客戶端根據頁面的時候完成 partial-page 的更新。所以對于任何局部頁面的操作,頁面的 Postback 還是需要的。如果頁面的數據量特別大, Atlas 將會導致效率的降低。

Prototype 和 Ajax.NET Pro 的數據量差別不大。

B 、開發效率

Atlas 緊密的和 .NET 的控件結合在一起。如果使用 Atlas ,則可以最大程度的復用 .NET 的控件,比如數據顯示控件。

使用 Prototype ,需要在 Javascript 代碼中提交 Request 請求到 Server ,并且編寫相應的 callback 函數完成 Response 結果的解析和呈現。

使用 Ajax.NET Pro ,可以直接調用 Server 的類的方法(遠程 RPC ),不過還是需要編寫相應的 callback 函數完成 Response 結果的解析和呈現。

C 、 Server 端返回的數據格式

Ajax.NET Pro 中提供了序列化成 JSON 格式的接口和方法。

Server 端返回的數據格式,可以是簡單的 Text ,也可以是 XML 文檔,或者通過 Ajax.NET Pro 序列化成 JSON 格式。

“.NET2.0環境下的Ajax選型和應用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

美姑县| 萨迦县| 瑞丽市| 鄂伦春自治旗| 遂平县| 大理市| 陆良县| 马尔康县| 渭南市| 梅州市| 仪征市| 台安县| 罗城| 北碚区| 二连浩特市| 泰兴市| 三原县| 抚顺市| 连平县| 镇雄县| 稷山县| 盱眙县| 邵阳县| 万山特区| 伽师县| 介休市| 奉贤区| 湘潭县| 辰溪县| 微山县| 固始县| 涪陵区| 湖南省| 延吉市| 泰安市| 饶河县| 永清县| 那曲县| 淮滨县| 深泽县| 正安县|