免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ajax 歸檔

July 08, 2005

Ajax的小例子

添加如下代碼:
<script language=Javascript src=">
</script>
讓自己的網(wǎng)頁有了簡單的批注功能

July 06, 2005

初探AjaxTags

AjaxTags項目是在現(xiàn)有的Struts HTML標(biāo)記庫的基礎(chǔ)上,添加對AJAX支持。 AjaxTags改寫了Struts標(biāo)簽類org.apache.struts.taglib.html.FormTag和org.apache.struts.taglib.html.BaseHandlerTag,并使用Struts的plugin技術(shù),使得Struts提供了對AJAX的支持。 以下是jsp中簡單的示例:
<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屬性中內(nèi)容是在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ā)的事件和回寫結(jié)果的處理方法。采用很巧妙的封裝方法實現(xiàn)了Struts的AJAX調(diào)用。當(dāng)然Ajaxtags離實用階段還有相對長的一段距離,但它提供了一種在現(xiàn)有的軟件架構(gòu)上高效率開發(fā)ajax應(yīng)用程序的可行性方案。
由 liu2liu2 發(fā)表于 04:21 PM | 評論 (0)

May 08, 2005

關(guān)于AJAX構(gòu)架的一點構(gòu)想

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

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

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

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

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

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

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

April 28, 2005

JavaScript OOP

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


//聲明Cat的原型,即Cat的父類
Cat.prototype = new Pet;


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


//聲明PersianCat的原型,即PersianCat的父類
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的區(qū)別,JavaScript是不支持Overload的,原因是……你自己想想吧。

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


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


//聲明Cat的原型,即Cat的父類
Cat.prototype = new Pet;


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


//聲明PersianCat的原型,即PersianCat的父類
PersianCat.prototype = new Cat;


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


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


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


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


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


//定義數(shù)組,保存上面的三個對象
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. 運行結(jié)果

彈出三個對話框,分別如下:
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下測試通過。
由 liu2liu2 發(fā)表于 09:43 PM | 評論 (2)
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
JavaScript模擬命名空間
Javascript如何發(fā)送一個Ajax請求?
Jquery Cross
JavaScript處理ajax時net::ERR_CONNECTION_REFUSED
javascript結(jié)合ajax讀取txt文件內(nèi)容
$.ajax
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服