欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ajax 歸檔

July 08, 2005

July 06, 2005

初探AjaxTags

AjaxTags項目是在現有的Struts HTML標記庫的基礎上,添加對AJAX支持。 AjaxTags改寫(xiě)了Struts標簽類(lèi)org.apache.struts.taglib.html.FormTag和org.apache.struts.taglib.html.BaseHandlerTag,并使用Struts的plugin技術(shù),使得Struts提供了對AJAX的支持。 以下是jsp中簡(jiǎn)單的示例:
<html:form action="example1" ajaxRef="example1">  First Name: <html:text property="firstName" size="25" value="Frank" />  <br>  Last Name: <html:text property="lastName" size="25" value="Zammetti" />  <br>  <html:button property="button" value="Click to do Ajax!" ajaxRef="button" /></html:form>Result:<br><span id="example1_resultLayer"> </span>
注意的ajaxRef屬性。 ajaxRef屬性中內容是在ajax-config.xml中定義的,例如本示例的配置部分如下:
<!DOCTYPE ajaxConfig PUBLIC "ajaxConfig" "ajaxConfig"><ajaxConfig>  <!-- Define a custom request handler that generates XML for example 2 -->	<handler name="CustomXMLGenerator" type="request">		<function>customGenerateXML</function>		<location>customXMLGenerator.js</location>	</handler>	<!-- Configuration for example 1 -->	<form ajaxRef="example1">		<element ajaxRef="button">			<event type="onclick">				<requestHandler type="std:QueryString">					<target>example1.do</target>					<parameter>firstName=firstName,lastName=lastName</parameter>				</requestHandler>				<responseHandler type="std:InnerHTML">					<parameter>example1_resultLayer</parameter>				</responseHandler>			</event>		</element>	</form></ajaxConfig>
在配置文件中定義了該表單的屬性,以及按鈕觸發(fā)的事件和回寫(xiě)結果的處理方法。采用很巧妙的封裝方法實(shí)現了Struts的AJAX調用。當然Ajaxtags離實(shí)用階段還有相對長(cháng)的一段距離,但它提供了一種在現有的軟件架構上高效率開(kāi)發(fā)ajax應用程序的可行性方案。
由 liu2liu2 發(fā)表于 04:21 PM | 評論 (0)

May 08, 2005

關(guān)于A(yíng)JAX構架的一點(diǎn)構想

以前搞了一個(gè)XPP的編程平臺,應該來(lái)說(shuō),不是一個(gè)成功的東東。XPP本身確實(shí)解決了目前編程的諸多問(wèn)題,例如頁(yè)面狀態(tài)保持、統一的界面風(fēng)格、良好的數據效驗器,但并沒(méi)有考慮到數據傳輸的問(wèn)題,雖然采用了壓縮流來(lái)傳遞數據,但同樣也增加了服務(wù)器的壓力。也許對于中小型的企業(yè)應用,XPP可以作為一個(gè)被選的平臺,但作為大型的企業(yè)應用,XPP表現恐怕很難實(shí)用。
在有了上次失敗的經(jīng)歷后,考慮是否可以采用AJAX作為一個(gè)輕量級的框架(XPP的體系太過(guò)龐雜,過(guò)多在服務(wù)端考慮了前端的UI邏輯,也是這才是失敗的根本),側重于業(yè)務(wù)邏輯層的調用,不再考慮UI層的邏輯。
AJAX主要實(shí)現的主要技術(shù):
1、XmlHttpRequest
主要考慮是否需要支持瀏覽器的差異性,目前至少提供對IE和Mozilla的支持,以后是否考慮對其他瀏覽器進(jìn)行支持?
這是是個(gè)很easy的問(wèn)題,暫時(shí)不進(jìn)行深入探索。

2、XML數據傳輸層的封裝(AJAX的核心)
AJAX的核心數據傳遞毫無(wú)疑問(wèn)只能是基于XML的,如何有效地對XML數據輸送層進(jìn)行封裝,來(lái)保證構架良好的可用性和擴展性?這里主要是需要考慮兩個(gè)方面:良好的封裝性和執行效率。
我初步的想法是服務(wù)端采用類(lèi)似buffalo的技術(shù)實(shí)現JAVA POJO與XML的序列化,客戶(hù)端采用js實(shí)現類(lèi)封裝實(shí)現JAVA對象的映射(考慮采用服務(wù)器端自動(dòng)生成js文件,并動(dòng)態(tài)加載js對象,以提高瀏覽器的處理能力),并在此基礎上實(shí)現XML-PRC。

3、服務(wù)端集成
考慮AJAX與其它架構集成的方案,并保證系統良好的安全性和執行效率。

暫時(shí)處于疑問(wèn)中的幾個(gè)問(wèn)題:
1、UI層如何表現?
采用AJAX的話(huà),是采用js構建頁(yè)面還是采用XmlHttp獲取服務(wù)端返回的頁(yè)面信息?

2、數據效驗問(wèn)題?
對于A(yíng)JAX作RIA的應用,UI層的數據效驗肯定是必要的,由于采用AJAX,用戶(hù)繞過(guò)UI效驗是很容易的事情,如果在服務(wù)端同樣做數據效驗的話(huà),是否會(huì )增加代碼的編寫(xiě)工作量?是否能夠采用統一的數據效驗?如何可以的話(huà),如何實(shí)現?

目前buffalo主要有如下問(wèn)題:
a. JAVA Object的序列化邏輯與RPC的業(yè)務(wù)邏輯混在一起,不利于系統的擴展
b. buffalo只支持UTF-8編碼的XML,不支持GBK編碼的XML
c. buffalo可以調用服務(wù)的所有方法,可能會(huì )對服務(wù)器產(chǎn)生一定的安全隱患

由 liu2liu2 發(fā)表于 02:17 PM | 評論 (1)

April 28, 2005

JavaScript OOP

1. 什么是JavaScript
JavaScript 是一種描述性的腳本語(yǔ)言(Script Language),它可以非常自由地被嵌入到HTML 的文件之中。使用JavaScript 可以做什么呢?它的作用很簡(jiǎn)單,就是對網(wǎng)頁(yè)瀏覽者當前所觸發(fā)的事件進(jìn)行處理或對網(wǎng)頁(yè)進(jìn)行初始化工作。它是事先在網(wǎng)頁(yè)中編寫(xiě)好代碼(或叫做“腳本”),然后此代碼伴隨Html文件一起傳送到客戶(hù)端的瀏覽器上,由瀏覽器對這些代碼進(jìn)行解釋執行,而其執行期間并沒(méi)有勞駕服務(wù)器幫忙,這樣就減輕了服務(wù)器的負擔。
許多編程高手都瞧不起JavaScript編程,認為只是小孩子的玩意。的確,JavaScript作為一種腳本語(yǔ)言,比起其他語(yǔ)言來(lái)說(shuō),顯得非常簡(jiǎn)單,沒(méi)有很復雜的語(yǔ)法,沒(méi)有龐雜的體系架構。
2. 面向對象編程(Object-Oriented Programming)
一個(gè)世界,可以完全由對象組成,而將算法所基于的世界只用對象表現出來(lái),再進(jìn)行后續代碼的編寫(xiě),這種編程方法就被稱(chēng)作面向對象的編程思想。
OOP的三大要素:
1. 封裝
2. 繼承
3. 多態(tài)
3. JavaScript如何實(shí)現OOP
3.1. 封裝(Wrap)
JavaScript的對象封裝,主要依靠function來(lái)實(shí)現。以下是一個(gè)簡(jiǎn)單的示例:
//*********************************************
// 定義Pet(寵物)對象
//*********************************************
function Pet() {
    //名稱(chēng)
    this.name = null;
    //顏色
    this.color = null;
    //獲取名稱(chēng)
    this.getName = function() {
        return this.name;
    };
    //設置名稱(chēng)
    this.setName = function(newName) {
        this.name = newName;
    };
    //獲取顏色
    this.getColor = function() {
        return this.color;
    };
    //設置顏色
    this.setColor = function(newColor) {
        this.color = newColor;
    };
    //定義一個(gè)需要實(shí)現的方法
    this.getFood = null;
    //獲取寵物的描述信息
    this.toString = function() {
        return "The pet is " + this.name +",it‘s "+this.color+",and it likes "+this.getFood()+".";
    };
}
3.2. 繼承(inheritance)
JavaScript的繼承的實(shí)現主要依靠prototype(原型)來(lái)實(shí)現,下面為Pet類(lèi)編寫(xiě)一個(gè)子類(lèi)。
//*********************************************
// 定義Cat(貓)對象
//*********************************************
function Cat() {
    //實(shí)現Pet中定義的getFood方法
    this.getFood = function() {
        return "fish";
    };
}


//聲明Cat的原型,即Cat的父類(lèi)
Cat.prototype = new Pet;


多層次繼承
//*********************************************
// 定義PersianCat(波斯貓)對象
//*********************************************
function PersianCat() {
}


//聲明PersianCat的原型,即PersianCat的父類(lèi)
PersianCat.prototype = new Cat;
3.3.    重載(override)與多態(tài)(Polymorphism)
//重載Pet的toString方法
PersianCat.prototype.toString = function() {
    return "It‘s just a persian cat.";
};

注意:Override和Overload的區別,JavaScript是不支持Overload的,原因是……你自己想想吧。

JavaScript是一種弱類(lèi)型的語(yǔ)言,所以不要把它與C++、JAVA等語(yǔ)言進(jìn)行比較。
4. 附錄
4.1. 完整的示例
4.1.1. Pet.js
//*********************************************
// 定義Pet(寵物)對象
//*********************************************
function Pet() {
    //名稱(chēng)
    this.name = null;
    //顏色
    this.color = null;
    //獲取名稱(chēng)
    this.getName = function() {
        return this.name;
    };
    //設置名稱(chēng)
    this.setName = function(newName) {
        this.name = newName;
    };
    //獲取顏色
    this.getColor = function() {
        return this.color;
    };
    //設置顏色
    this.setColor = function(newColor) {
        this.color = newColor;
    };
    //定義一個(gè)需要實(shí)現的方法
    this.getFood = null;
    //獲取寵物的描述信息
    this.toString = function() {
        return "The pet is " + this.name +",it‘s "+this.color+",and it likes "+this.getFood()+".";
    };
}


//*********************************************
// 定義Cat(貓)對象
//*********************************************
function Cat() {
    //實(shí)現Pet中定義的getFood方法
    this.getFood = function() {
        return "fish";
    };
}


//聲明Cat的原型,即Cat的父類(lèi)
Cat.prototype = new Pet;


//*********************************************
// 定義PersianCat(波斯貓)對象
//*********************************************
function PersianCat() {
}


//聲明PersianCat的原型,即PersianCat的父類(lèi)
PersianCat.prototype = new Cat;


//重載Pet的toString方法
PersianCat.prototype.toString = function() {
    return "It‘s just a persian cat.";
};


//*********************************************
// 定義Dog(狗)對象
//*********************************************
function Dog() {
    //實(shí)現Pet中定義的getFood方法
    this.getFood = function() {
        return "bone";
    };
}


//聲明Dog的原型,即Dog的父類(lèi)
Dog.prototype = new Pet;
4.1.2. Pet.htm
<script language="javascript" src="Pet.js" >
</ script >
< script language="javascript">
//定義一個(gè)Cat對象
var cat = new Cat();
cat.setName("MiMi");
cat.setColor("white");


//定義一個(gè)Dog對象
var dog = new Dog();
dog.setName("WangWang");
dog.setColor("yellow");


//定義一個(gè)PersianCat對象
var persianCat = new PersianCat();


//定義數組,保存上面的三個(gè)對象
var pets = new Array(3);
pets[0] = cat;
pets[1] = dog;
pets[2] = persianCat;


//測試程序
for(var i=0,size=pets.length;i<size;i++) {
    alert(pets[i].toString());
}
</script>
4.1.3. 運行結果

彈出三個(gè)對話(huà)框,分別如下:
The pet is MiMi,it‘s white,and it likes fish.
The pet is WangWang,it‘s yellow,and it likes bone.
It‘s just a persian cat.
本示例在IE6.0下測試通過(guò)。
由 liu2liu2 發(fā)表于 09:43 PM | 評論 (2)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JavaScript模擬命名空間
Javascript如何發(fā)送一個(gè)Ajax請求?
Jquery Cross
JavaScript處理ajax時(shí)net::ERR_CONNECTION_REFUSED
javascript結合ajax讀取txt文件內容
$.ajax
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久