国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

輕量級的Ajax解決方案――DynAjax:直接在客戶端調(diào)用C#類的方法

2024-09-01 08:26:22
字體:
供稿:網(wǎng)友
前言:
MS Ajax我在以前一個項目中使用過,感覺太笨重了,速度比較慢,而且出了問題,很難控制。所以我一直想用一個可控制的替代框架。
客戶端JS框架肯定首推JQuery,優(yōu)雅簡潔的代碼,完美的支持表現(xiàn)和邏輯分離,讓人一見傾心。
服務(wù)器端框架我找了一些,國內(nèi)的大部分還都是零散的代碼或處于萌芽狀態(tài),大多數(shù)實現(xiàn)JSON的C#類就沒下文了,對安全性都沒有整合的建議。
直到今天,我發(fā)現(xiàn)了DynAjax,開源的,完全可控的Ajax服務(wù)器端框架。原項目作者是法國人(Mr Benoît BEGUIN),現(xiàn)翻譯作者的介紹如下。

概述

DynAjax是一個Javascript / Ajax / ASP.Net / C# 結(jié)合的Ajax框架,它能幫助我們很容易地直接通過Javascript動態(tài)調(diào)用服務(wù)器端的C#方法(就像Java世界的DWR)。對象序列化基于JSON,支持混合對象轉(zhuǎn)換。

下載最新正式版 (v1.04)

DynAjax v1.04

DynAjax是什么 ?

DynAjax 是以C# .Net / ASP .Net為服務(wù)器端、以Prototype為客戶端的Ajax框架(譯者按:發(fā)現(xiàn)DynAjax只有Prototype版本的,稍后一些日子我會發(fā)布改寫的JQuery版的DynAjax),它支持從客戶端通過Javascript直接訪問服務(wù)器端C#方法.

DynAjax 為誰準(zhǔn)備的 ?

以下 C# / ASP .Net 開發(fā)者:如果想要添加直接有效、方便的Ajax到你的網(wǎng)站 或者 專業(yè)級的項目開發(fā) (我用它來開發(fā)自己公司的專業(yè)級項目).

DynAjax到底能做些什么,怎么做的?

假設(shè)你正在開發(fā)一個專業(yè)網(wǎng)站程序,你需要保存一些文本數(shù)據(jù)型的用戶信息到數(shù)據(jù)庫中,同時又不發(fā)送Html表單,也不刷新頁面。顯然,你需要使用Ajax。
你打算使用原始的XmlHttpRequest (Ajax) 請求數(shù)據(jù)和檢測返回的數(shù)據(jù)等等,發(fā)送數(shù)據(jù)并確認(rèn)正確被保存?這種原始的方法讓人感到繁瑣。

通過使用DynAjax,你可以很容易地保存這些文本數(shù)據(jù),而代價只是寫寫簡單的JavaScript (假設(shè)有一個類"MyClass",里面有個公共方法叫“saveText”,方法返回string類型的“ok”,你可以這樣調(diào)用) :
 
var response = MyClass.saveText(myText);
if (response == "ok") {
--- code here ---
}
 
很簡單的使用方法哦,不是嗎?
瀏覽 示例頁 查看更多的例子和源碼.

DynAjax是同步還是異步的?

取決你的使用:如果你想同步調(diào)用,使用這種語法形式:
var response = MyClass.myMethod(myArgs);
if (response >= 2) {
--- code here ---
}
 
如果你想異步調(diào)用,可以使用下面這種語法形式:
MyClass.myMethod(myArgs, function(response) {
if (response >= 2) {
--- code here ---
}
});
 
DynAjax 推薦采用這種異步方式。

DynAjax支持哪些數(shù)據(jù)類型可以被客戶端Javascript接收?

幾乎所有數(shù)據(jù)類型都能從服務(wù)器端返回到客戶端。事實上,數(shù)據(jù)被轉(zhuǎn)換為JSON格式 (JSON是Javascript與其他語言比如C#.Net,Java等交換數(shù)據(jù)的特殊格式,有點類似xml的功能。)
這種格式支持以下數(shù)據(jù)類型:
  • Strings 字符串
  • Numbers (int, decimal...) 數(shù)字
  • Booleans 布爾
  • Arrays 數(shù)組
  • HashTables 哈希表
  • Complex objects復(fù)合對象 (由成員變量, Arrays, HashTables, Arrays 或者其他復(fù)合對象 等等 構(gòu)成)
  • "null" value

如你所見, 幾乎所有(數(shù)據(jù)類型)都是可能的:你可以做到的。打個比方 , 如果你想開發(fā)一個eBay類型的網(wǎng)站,在搜索頁面,訪問一個返回商品【實例】列表(List)的方法,并顯示列表 - 你只需要通過Javascript重復(fù)循環(huán)訪問返回的JSON格式性質(zhì)列表 (List),進而訪問每個商品【實例】,然后訪問【實例】屬性。這就如你在C#里面做的一樣,酷!

如果你想對JSON這個格式有更多了解,請訪問 Json description site(英文)。

安全性怎樣?

DynAjax 針對所有可遠程訪問的Method(方法),皆提供了安全驗證機制.
事實上,每個方法必須被定義到XML格式的配置文件中,你可以設(shè)定這個方法是-需要-還是-不需要-訪問驗證。.
所以,即便黑客也不能在未驗證通過的情況下訪問 需要 驗證的方法。

安裝/設(shè)置DynAjax到我的Web應(yīng)用程序中會麻煩嗎?

不麻煩, DynAjax基于8 個文件 :
  • DynAjaxHandler.aspx 和DynAjaxHandler.cs - Ajax處理器,接受和分派所有的DynAjax調(diào)用
  • dynAjaxScript.aspx 和dynAjaxScript.cs - 動態(tài)生成客戶端JavaScript,屬于DynAjax的重要部分 (盡管這個文件擴展名是aspx,但它作為js調(diào)用)
  • prototype.js - prototype框架
  • Newtonsoft.Json.dll - 一個.net的Json程序集
  • log4net.dll - 日志庫
  • dynAjaxConfig.xml - DynAjax 的配置文檔(XML格式的)

這8 個文件必須直接拷貝到Web應(yīng)用程序目錄中, 只有dynAjaxConfig.xml可以根據(jù)需要進行配置修改,其他文件非專業(yè)不要修改.
相當(dāng)容易,對吧 ?
您可以看看第一本DynAjax教程 DynAjax 教程 01(英文),一步一步地進行DynAjax的安裝/配置。
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沅陵县| 洞口县| 阜阳市| 钟祥市| 白水县| 米易县| 威信县| 南华县| 蓬溪县| 万荣县| 宁陵县| 黄骅市| 凤台县| 若尔盖县| 东乌珠穆沁旗| 肇源县| 驻马店市| 襄垣县| 莎车县| 天水市| 江门市| 广州市| 苏尼特左旗| 灌云县| 东乡族自治县| 永清县| 威宁| 高台县| 长丰县| 隆子县| 阿尔山市| 静海县| 南宫市| 南投市| 黔南| 重庆市| 洮南市| 赫章县| 景东| 浙江省| 安阳县|