輕量級的Ajax解決方案——DynAjax:直接在客戶端調用C#類的方法_AJAX教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:解讀輕量級的Ajax解決方案——DynAjax的JQuery版下班了,剛到家,老婆在做飯,小家伙在玩玩具,暫時沒騷擾我。呵呵!趁這空閑寫會博客。前兩天答應改造DynAjax為JQuery版本,今天就完成這個任務吧。 上一篇隨筆介紹了輕量級的Ajax解決方案DynAjax,可惜原作者只有寫支持Prototype.js版本的。 DynAjax用到Pr
前言:MS Ajax我在以前一個項目中使用過,感覺太笨重了,速度比較慢,而且出了問題,很難控制。所以我一直想用一個可控制的替代框架。
客戶端JS框架肯定首推JQuery,優雅簡潔的代碼,完美的支持表現和邏輯分離,讓人一見傾心。
服務器端框架我找了一些,國內的大部分還都是零散的代碼或處于萌芽狀態,大多數實現JSON的C#類就沒下文了,對安全性都沒有整合的建議。
直到今天,我發現了DynAjax,開源的,完全可控的Ajax服務器端框架。原項目作者是法國人(Mr Benoît BEGUIN),現翻譯作者的介紹如下。
概述
DynAjax是一個Javascript / Ajax / ASP.Net / C# 結合的Ajax框架,它能幫助我們很容易地直接通過Javascript動態調用服務器端的C#方法(就像Java世界的DWR)。對象序列化基于JSON,支持混合對象轉換。下載最新正式版 (v1.04)
DynAjax v1.04DynAjax是什么 ?
DynAjax 是以C# .Net / ASP .Net為服務器端、以Prototype為客戶端的Ajax框架(譯者按:發現DynAjax只有Prototype版本的,稍后一些日子我會發布改寫的JQuery版的DynAjax),它支持從客戶端通過Javascript直接訪問服務器端C#方法.DynAjax 為誰準備的 ?
以下 C# / ASP .Net 開發者:如果想要添加直接有效、方便的Ajax到你的網站 或者 專業級的項目開發 (我用它來開發自己公司的專業級項目).DynAjax到底能做些什么,怎么做的?
假設你正在開發一個專業網站程序,你需要保存一些文本數據型的用戶信息到數據庫中,同時又不發送Html表單,也不刷新頁面。顯然,你需要使用Ajax。你打算使用原始的XmlHttpRequest (Ajax) 請求數據和檢測返回的數據等等,發送數據并確認正確被保存?這種原始的方法讓人感到繁瑣。
通過使用DynAjax,你可以很容易地保存這些文本數據,而代價只是寫寫簡單的JavaScript (假設有一個類"MyClass",里面有個公共方法叫“saveText”,方法返回string類型的“ok”,你可以這樣調用) :
很簡單的使用方法哦,不是嗎?var response = MyClass.saveText(myText);
if (response == "ok") {
--- code here ---
}
瀏覽 示例頁 查看更多的例子和源碼.
DynAjax是同步還是異步的?
取決你的使用:如果你想同步調用,使用這種語法形式:如果你想異步調用,可以使用下面這種語法形式:var response = MyClass.myMethod(myArgs);
if (response >= 2) {
--- code here ---
}
DynAjax 推薦采用這種異步方式。MyClass.myMethod(myArgs, function(response) {
if (response >= 2) {
--- code here ---
}
});
DynAjax支持哪些數據類型可以被客戶端Javascript接收?
幾乎所有數據類型都能從服務器端返回到客戶端。事實上,數據被轉換為JSON格式 (JSON是Javascript與其他語言比如C#.Net,Java等交換數據的特殊格式,有點類似xml的功能。)這種格式支持以下數據類型:
- Strings 字符串
- Numbers (int, decimal...) 數字
- Booleans 布爾
- Arrays 數組
- HashTables 哈希表
- Complex objects復合對象 (由成員變量, Arrays, HashTables, Arrays 或者其他復合對象 等等 構成)
- "null" value
如你所見, 幾乎所有(數據類型)都是可能的:你可以做到的。打個比方 , 如果你想開發一個eBay類型的網站,在搜索頁面,訪問一個返回商品【實例】列表(List)的方法,并顯示列表 - 你只需要通過Javascript重復循環訪問返回的JSON格式性質列表 (List),進而訪問每個商品【實例】,然后訪問【實例】屬性。這就如你在C#里面做的一樣,酷!
如果你想對JSON這個格式有更多了解,請訪問 Json description site(英文)。
安全性怎樣?
DynAjax 針對所有可遠程訪問的Method(方法),皆提供了安全驗證機制.事實上,每個方法必須被定義到XML格式的配置文件中,你可以設定這個方法是-需要-還是-不需要-訪問驗證。.
所以,即便黑客也不能在未驗證通過的情況下訪問 需要 驗證的方法。
安裝/設置DynAjax到我的Web應用程序中會麻煩嗎?
不麻煩, DynAjax基于8 個文件 :- DynAjaxHandler.aspx 和DynAjaxHandler.cs - Ajax處理器,接受和分派所有的DynAjax調用
- dynAjaxScript.aspx 和dynAjaxScript.cs - 動態生成客戶端JavaScript,屬于DynAjax的重要部分 (盡管這個文件擴展名是aspx,但它作為js調用)
- prototype.js - prototype框架
- Newtonsoft.Json.dll - 一個.net的Json程序集
- log4net.dll - 日志庫
- dynAjaxConfig.xml - DynAjax 的配置文檔(XML格式的)
這8 個文件必須直接拷貝到Web應用程序目錄中, 只有dynAjaxConfig.xml可以根據需要進行配置修改,其他文件非專業不要修改.
相當容易,對吧 ?
您可以看看第一本DynAjax教程 DynAjax 教程 01(英文),一步一步地進行DynAjax的安裝/配置。
分享:解析ajax實現無刷新驗證用戶名是否存在實現用的是jdbc+jsp+servlet,數據庫用的是mysql 表就2個字段 實現原理獲得text的值后,通過調用servlet查詢數據庫里是否存在,在通過xml傳到前臺 OperationName.java response.setContentType(text/xml;charset=UTF-8)這句很重要,沒有他前臺獲得不到xml,之前
相關AJAX教程:
- 相關鏈接:
- 教程說明:
AJAX教程-輕量級的Ajax解決方案——DynAjax:直接在客戶端調用C#類的方法
。