日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ajax結(jié)構(gòu)分析

 grantbb 2005-07-18
Ajax(Asynchronous JavaScript + XML)并不是一個(gè)革命性的嶄新概念(也許根本就不存在突發(fā)的革命),它的技術(shù)基礎(chǔ)在多年之前就已經(jīng)牢固的建立起來(lái)了,在概念層次上的探討也早就不是一個(gè)新鮮的話題,只是大規(guī)模的有深度的應(yīng)用似乎是最近才開(kāi)始的。
從廣義上說(shuō),web應(yīng)用至少涉及到兩個(gè)結(jié)構(gòu),
1. 后臺(tái)以java語(yǔ)言表達(dá)的業(yè)務(wù)邏輯結(jié)構(gòu)
2。前臺(tái)以html語(yǔ)言表達(dá)的界面表現(xiàn)結(jié)構(gòu)。

web開(kāi)發(fā)很大一部分工作就是建立這兩個(gè)結(jié)構(gòu)之間的關(guān)系。即我們需要
html <--> java

我們首先要意識(shí)到這兩種結(jié)構(gòu)之間并不一定是同構(gòu)的,即后臺(tái)數(shù)據(jù)的組織方式與前臺(tái)展現(xiàn)時(shí)的結(jié)構(gòu)是不同的。同樣的數(shù)據(jù)可以對(duì)應(yīng)于不同的展現(xiàn)結(jié)構(gòu)。這也是所謂MVC架構(gòu)實(shí)現(xiàn)模型與視圖分離的依據(jù)。傳統(tǒng)上,基于Model2模式的MVC框架中,這兩種結(jié)構(gòu)的映射只能在很粗的粒度上進(jìn)行(即整個(gè)頁(yè)面的粒度上),因此妨礙了封裝和重用。為了進(jìn)行細(xì)粒度的映射,我們必須要擁有細(xì)粒度的結(jié)構(gòu)控制能力。而目前最強(qiáng)的結(jié)構(gòu)控制能力存在于javascript/DHTML模型之中,在js中html的結(jié)構(gòu)可以是一段線性的文本(innerHTML和outerHTML), 可以是層級(jí)組織的節(jié)點(diǎn)(parentNode, childNodes), 也可以是按照key組織起來(lái)的Map(getElementById)。在不同的情形下,我們可以根據(jù)需要選擇不同的結(jié)構(gòu)模型。
ajax體系很直接的一個(gè)想法就是將所有關(guān)于界面表達(dá)和控制的結(jié)構(gòu)都推到前臺(tái),由控制力最強(qiáng)的js來(lái)控制后臺(tái)數(shù)據(jù)模型與前臺(tái)html模型之間的映射。
html <--> js <==> xml <==> java
在ajax體系中,xml所扮演的角色是js與java之間的翻譯通道,它將js中的結(jié)構(gòu)與java中的結(jié)構(gòu)對(duì)應(yīng)起來(lái),這種翻譯比html/java之間的映射要簡(jiǎn)單的多。其實(shí)它甚至可以是一種同構(gòu)的映射,可以用一種通用的方式來(lái)進(jìn)行,例如結(jié)合burlap與buffalo包的功能。結(jié)合webservice的一些思想,js/java之間的映射是可以在函數(shù)調(diào)用這種細(xì)粒度上自動(dòng)進(jìn)行的,從而我們最終可以在概念上完成html/java之間的細(xì)粒度映射。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多