隨著框架的越來越流行,對于后臺業(yè)務(wù)邏輯框架和WEB表現(xiàn)層框架,市面上可以找到很多非常好的開源框架。不過我始終在想一個問題,對于Java來說,只能使用java下的框架;而對于微軟來說,也只能使用其體系下開發(fā)的框架,那么有沒有可能混合使用呢?
何為混合使用?就是表現(xiàn)層全部使用靜態(tài)頁面后綴(.htm),而后臺可以是java構(gòu)建的業(yè)務(wù)層模型,也可以是微軟Donet構(gòu)建的業(yè)務(wù)層模型,這樣不管后臺使用什么模型,只要提供方提供了足夠我訪問的接口,就可以調(diào)用不同的架構(gòu)的接口來實現(xiàn)表現(xiàn)層上的內(nèi)容。
JQuery 是最近很流行的一個Ajax框架,其具體的運用和功能不在這里進行講解,但我們可以使用其內(nèi)嵌的Ajax方法,去調(diào)用后臺服務(wù)端的代碼,已實現(xiàn)客戶端和服務(wù)端的通信。因為客戶端是靜態(tài)頁面,其通過WebService調(diào)用服務(wù)端的方法,這樣很明顯,客戶端可以完全不管服務(wù)端是何種語言開發(fā)的,達到了混合使用的目的。
這種混合使用可以定義為 WEB端和后臺業(yè)務(wù)邏輯端的連接架構(gòu)模型。
這里僅僅是討論了JQuery在Ajax層面與服務(wù)端的交互通信的用法,不涉及JQuery的其他用法
以下以一個小小的例子來說明一下:
注:本人javascript和JQuery基礎(chǔ)較差,因此例子也相對簡單。
環(huán)境說明:
Asp.net 2.0
外接類庫: System.Web.Extensions.dll
JQuery框架: 1.3
第一步:創(chuàng)建一個WebService服務(wù),修改Web.config
工程引入System.Web.Extensions.dll
在 <system.web> 下面
<httpHandlers>
<remove verb="*" path="*.asmx"></remove>
<add verb="*" path="*.asmx"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>
</httpHandlers>
第二步:對asmx文件編碼
JSon.asmx
JSon.cs
using System.Web.Script.Serialization;
using System.Web.Script.Services;
[ScriptService]
public class Json : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string TestPersonJson(string name) {
List<Person> list = new List<Person>();
Person person = new Person();
person.Birthday = DateTime.Now;
person.ID = "111" + ">>" +name;
person.Sex = "1";
person.Status = 1;
Person person1 = new Person();
person1.Birthday = DateTime.Now;
person1.ID = "222" + ">>" + yy;
person1.Sex = "2";
person1.Status = 1;
Person person2 = new Person();
person2.Birthday = DateTime.Now;
person2.ID = "333" + ">>" + name;
person2.Sex = "1";
person2.Status = 1;
list.Add(person);
list.Add(person1);
list.Add(person2);
return new JavaScriptSerializer().Serialize(list);
}
}
以上就是cs代碼,重點關(guān)注有顏色的部分。這些有顏色的代碼其實就是JSon的應(yīng)用,后臺返回方法編譯成JSon格式的編碼發(fā)到客戶端(htm)頁面上,客戶端代碼解碼來獲取值。
第三步:創(chuàng)建一個htm客戶端頁面
<script type="text/javascript" src="../js_Core/jquery-1.3.2.min.js"></script> 這個不可少
看一下怎樣從服務(wù)端獲取值呈現(xiàn)在頁面,見以下javascript代碼
function testJson() {
$.ajax({
type: "POST",
url: "http://127.0.0.1:4000/Json.asmx/TestPersonJson",
data: "{name:'小王'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg){
var data = ("(" + msg + ")");
var t = "<table border='1'>" +
"<tr>"+
"<td>ID</td>" +
"<td>Sex</td>" +
"<td>Birthday</td>" +