777精品久无码人妻蜜桃,国产日本精品视频在线观看 ,国产亚洲99久久精品熟女av,brazzersvideosex欧美最新版,人人爽人人人爽人人爽

2025全球時空智能大會
5月21-22日 北京
開幕在即!WGDC25全球時空智能大會完整日程公布
即刻注冊  鎖定席位
分享
Scan me 分享到微信

程序員雜談:Ajax優(yōu)于JSF的幾個原因討論

       Sun為什么會搞出一個JSF,JSF為什么會是現(xiàn)在這個樣子,我想原因是這樣的:首先,基于組件的Web開發(fā)將來會是一個趨勢。自包含的組件便于IDE的處理,可以提高開發(fā)效率。

  就是說JSF優(yōu)于Struts/WebWork這類MVC框架的優(yōu)勢,在于它可以與IDE結(jié)合來自動生成代碼。而傳統(tǒng)的純手工編寫的MVC框架,影響了開發(fā)效率。因為Java技術(shù)在客戶端并沒有明顯的優(yōu)勢。Applet已經(jīng)被拋棄掉,Java的強(qiáng)項在服務(wù)器端。Sun不可能跑去使用JavaScript,因為在傳統(tǒng)開發(fā)者眼里,JS只配做一點很瑣碎的任務(wù)。

  于是在他們設(shè)計的這個架構(gòu)中,所有的用戶事件都放在了服務(wù)器端來處理,這個決策造成了JSF致命的缺點。它把事件處理模型綁死在服務(wù)器上,限制了響應(yīng)性更加靈敏的交互設(shè)計。隨之而來的網(wǎng)絡(luò)延遲會毀掉軟件的可用性。這也是Ajax在JSF的架構(gòu)中無法充分發(fā)揮作用的原因。

  JSF的設(shè)計思路有點模仿VB,組件化的開發(fā)這個方向是沒錯的,Ajax開發(fā)將來也會走這條路。但是JSF與VB最大的差別是VB的事件模型都是位于本地來處理的。這是一種本質(zhì)上的差別,所以如果JSF確實想模仿VB,那也是東施效顰。而且在JSF的設(shè)計階段,同步的請求/響應(yīng)是主流,他們的思路仍然牢牢束縛在基于頁面的開發(fā)方式上。根本就沒有思考過其他的可能。

  異步請求/響應(yīng)是Ajax與傳統(tǒng)開發(fā)方式最大的差別,異步帶來了更好的交互設(shè)計。

  在AjaxinAction第1章中作者舉了一個令人信服的例子。GoogleMaps中當(dāng)用戶滾動地圖時,獲取新的地圖圖片,由于是異步請求的,因此不會打斷用戶的操作流程。而在傳統(tǒng)的地圖服務(wù),每次滾動可能都需要刷新頁面。用一下微軟的那個地圖服務(wù)就可以感覺到明顯的差距,它甚至根本就不允許用戶滾動地圖。

  以前我說GoogleMaps不是Ajax,因為沒有使用XMLHttpRequest,這樣說看來理解有些狹隘。GoogleMaps請求地圖的圖片,采用的是修改動態(tài)創(chuàng)建的img元素的src屬性的方式,這樣的請求不會打斷用戶的操作,因此就是異步的。我們在AjaxinAction中看到作者將GoogleMaps當(dāng)作Ajax應(yīng)用,而在PragmaticAjax中作者說GoogleMaps不是嚴(yán)格意義上的Ajax,兩種說法都有道理。

  JSF其實如果和Applet結(jié)合,可能更好些。Applet是多線程的,可以捕獲用戶的操作事件,采用異步方式發(fā)送到服務(wù)器。這樣就不會打斷用戶的操作了。但是這樣一來設(shè)計的這個架構(gòu)就復(fù)雜了。而且Applet是已經(jīng)決定拋棄的東西。JSF和JavaWebStart結(jié)合也可以,不過JWS設(shè)計用來建造一類完全不同的Web應(yīng)用,即RichClient,而不是設(shè)計用來建造運(yùn)行于瀏覽器之內(nèi)的RIA應(yīng)用。所以JSF最多只是一種過渡方案,在Ajax/Flash的競爭下早已風(fēng)光不在。

  未來基于瀏覽器的RIA開發(fā),Ajax、Flash是兩種最有前途的技術(shù)。

  按照澤欣的判斷可能是三分天下,Ajax、Flash/Flex/Laszlo、還有M$的Atlas。Atlas是M$開發(fā)的類似于Flash的一種技術(shù),目前還只是一個vaporware,沒有看到其廬山真面目。JavaWebStart相比之下只能局限于一些內(nèi)部應(yīng)用。

  將來位于客戶端的表現(xiàn)層開發(fā)可能會完全沒有Java的位置,這是Sun不愿意看到的,但是Sun在這場角逐中只不過是一個小角色?!?

 

 

 

喜歡您正在閱讀的內(nèi)容嗎?歡迎免費訂閱泰伯每周精選電郵。 立即訂閱

參與評論

【登錄后才能評論哦!點擊

  • {{item.username}}

    {{item.content}}

    {{item.created_at}}
    {{item.support}}
    回復(fù){{item.replynum}}
    {{child.username}} 回復(fù) {{child.to_username}}:{{child.content}}

更多精選文章推薦