成人无码视频在线观看_午夜亚洲AⅤ无码高潮片苍井空 _性做久久久久久久_拧花蒂尿用力按凸起喷水尿视频 _欧美丰满美乳XXⅩ高潮WWW_一边下奶一边吃面膜视频讲解图片 _久久久久久久99精品国产片_书房双乳晃动干柴烈火视频_在线观看亚洲一区

聚集網(wǎng)(jujiwang.com) - 收錄免費(fèi)分類目錄信息軟文發(fā)布網(wǎng)址提交
免費(fèi)加入

JSF:使用JavaServer Faces和AJAX增強(qiáng)用戶交互 (jsf使用css)

文章編號(hào):11143時(shí)間:2024-09-30人氣:


Faces和AJAX增強(qiáng)用戶

JavaServer Faces (JSF) 是一個(gè)以下代碼片段顯示了一個(gè)具有 AJAX 行為的按鈕:

```java@AjaxBehaviorRenderer(ajaxEvent="click")public void doSomething() {// AJAX 請(qǐng)求觸發(fā)的代碼}```當(dāng)用戶單擊按鈕時(shí),此代碼段中的方法將被調(diào)用。AJAX 請(qǐng)求將發(fā)送到服務(wù)器,服務(wù)器將響應(yīng)更新部分頁(yè)面。

使用 CSS 增強(qiáng) JSF AJAX 應(yīng)用程序

可以使用 CSS 來(lái)增強(qiáng) JSF AJAX 應(yīng)用程序的外觀和感覺(jué)。例如,您可以使用 CSS 來(lái)設(shè)置 AJAX 請(qǐng)求期間顯示的加載圖標(biāo)。以下代碼片段顯示了如何在 JSF AJAX 應(yīng)用程序中使用 CSS 設(shè)置加載圖標(biāo):

```css.loading {display: none;position: absolute;top: 50%;left: 50%;transForm: translate(-50%, -50%);}.loading-icon {width: 32px;height: 32px;animation: spin 1s Linear infinite;}@keyframes spin {0% {transform: rotate(0deg);}100% {transform: rotate(360deg);}}```要使用此 CSS,您可以將以下代碼段添加到 JSF AJAX 應(yīng)用程序的 body 元素中: ```您可以在以下位置使用 AJAX 行為時(shí)顯示加載圖標(biāo):```java@AjaxBehaviorRenderer(ajaxEvent="click", onstart="showLoader()", oncomplete="hideLoader()")public void doSomething() {// AJAX 請(qǐng)求觸發(fā)的代碼}private void showLoader() {document.getElementById("loading").style.display = "block";}private void hideLoader() {document.getElementById("loading").style.display = "none";}```此代碼段將顯示加載圖標(biāo),直到 AJAX 請(qǐng)求完成。

結(jié)論

通過(guò)將 JSF 與 AJAX 結(jié)合使用,您可以創(chuàng)建更具交互性和響應(yīng)性的 Web 應(yīng)用程序。通過(guò)使用 CSS 增強(qiáng) JSF AJAX 應(yīng)用程序的外觀和感覺(jué),您可以創(chuàng)建更美觀和用戶友好的應(yīng)用程序。


請(qǐng)各位英語(yǔ)達(dá)人幫我翻譯一下軟件工程師簡(jiǎn)歷中的 項(xiàng)目經(jīng)驗(yàn) 不勝感激!

我還是把三條一起發(fā)給你吧。 項(xiàng)目經(jīng)驗(yàn): Project Experience1. XX服裝企業(yè)分銷網(wǎng)絡(luò)系統(tǒng)1. Distribution Network System for ××Clothing Enterprise ? 項(xiàng)目介紹:該系統(tǒng)實(shí)現(xiàn)了服裝企業(yè)對(duì)服裝分銷流程的信息化支持,系統(tǒng)的主要功能模塊有:分銷商庫(kù)存管理、流向單管理、統(tǒng)計(jì)報(bào)表管理、分銷費(fèi)管理、付款結(jié)帳管理、基礎(chǔ)數(shù)據(jù)管理等。 本系統(tǒng)主要對(duì)企業(yè)的物流和資金流進(jìn)行全面的管理和控制。 Project Introduction: This system realizes the information support to the distribution flow of clothing enterprises. The main function modules include: distributor stocking management, flow direction form management, statistics form management, distribution fees management, payment and check-out management, basic data management, etc. This system is mainly used in the comprehensive management and control on the logistics and capital. 總體技術(shù):基于Jsp + Servlet+? JavaBean技術(shù)實(shí)現(xiàn):分為展現(xiàn)層、業(yè)務(wù)邏輯層、DAO層、PO層,在DAO實(shí)現(xiàn)上基于OCP原則采用抽象工廠方法設(shè)計(jì)模式,DAO層直接封裝JDBC數(shù)據(jù)庫(kù)操作;在統(tǒng)計(jì)報(bào)表實(shí)現(xiàn)上使用Jfreechart組件,同時(shí)還使用了FileUpload上傳組件及驗(yàn)證碼生成組件等。 Overall Technology: Implemented based on Jsp + Servlet+? JavaBean technology, it is divided into presentation layer, business logic layer, DAO layer, PO layer. The implement of DAO adopts the design mode of abstract factory method based on the OCP principle, and the DAO layer directly packages the operation of JDBC database; and the implement of statistics form adopts Jfreechart component, in the same time FileUpload uploading component and verification-code generation component, etc. are also used. 負(fù)責(zé)工作:分銷商庫(kù)存管理、數(shù)據(jù)庫(kù)設(shè)計(jì)?The responsible work:The design of distributor stocking management and database.? 心得體會(huì):對(duì)企業(yè)分銷資源管理系統(tǒng)的業(yè)務(wù)需求有進(jìn)一步理解,樹(shù)結(jié)構(gòu)實(shí)現(xiàn)方式,JDBC操作數(shù)據(jù)庫(kù),Jfreechart組件的運(yùn)用、抽象工廠設(shè)計(jì)模式實(shí)現(xiàn)、一些技術(shù)細(xì)節(jié)等。 Experiences: Got further understanding of the service demand for distribution resources management system used in enterprises, and got further understanding of tree architecture implementation mode, JDBC operation database, the application of Jfreechart component, the implement of abstract factory design pattern, and some details. 2. XX軍區(qū)首長(zhǎng)機(jī)關(guān)辦公自動(dòng)化系統(tǒng) 2. Office Automation System for Head of ×× Military Area Command? 項(xiàng)目介紹:為了加快部隊(duì)信息化建設(shè)進(jìn)程,提高首長(zhǎng)機(jī)關(guān)的日常辦公效率,促進(jìn)司證后裝備部門之間的協(xié)調(diào)工作,**軍區(qū)結(jié)合自身實(shí)際,自主研發(fā)的一套OA系統(tǒng)。 總體分機(jī)構(gòu)管理、權(quán)限管理、公文流轉(zhuǎn)、系統(tǒng)管理、信息交流、信息發(fā)布、知識(shí)管理、項(xiàng)目管理、資產(chǎn)管理、考勤管理、人事檔案、我的工作臺(tái)等模塊。 Project Introduction: In order to accelerate the information construction of the troops, enhance the routine work efficiency of head office, ensure the coordinated work among Command, Political Dept, Logistics Dept, and Equipment Dept, ×× Military Area Command combines self practical situation, and develops an OA system on the basis of itself. The overall system is divided into the following modules: institution management, rights management, documents flow, system management, information exchange, information release, knowledge management, project management, properties management, attendance management, HR archives, my workstation, and so on. 總體技術(shù):基于Struts+ Spring+JBPM+? Hibernate的多層架構(gòu):展現(xiàn)層使用Struts來(lái)實(shí)現(xiàn)MVC模式,通過(guò)page-taglib實(shí)現(xiàn)分頁(yè),采用JSTL與自定義標(biāo)簽,使用Ajax技術(shù)使系統(tǒng)具有較好的用戶體驗(yàn);業(yè)務(wù)邏輯層利用Spring的IOC來(lái)維護(hù)業(yè)務(wù)對(duì)象之間的關(guān)聯(lián),利用Spring的AOP進(jìn)行聲明式事務(wù)管理,采用貧血Domain Object模型;持久化層使用hibernate來(lái)實(shí)現(xiàn),通過(guò)DAO模式封裝PO對(duì)象;將JBPM與Spring整合,實(shí)現(xiàn)公文流轉(zhuǎn)模塊;結(jié)合Freemarker模板技術(shù)實(shí)現(xiàn)動(dòng)態(tài)表單定義模型;實(shí)現(xiàn)擴(kuò)展的基于RBAC授權(quán)與認(rèn)證模型;實(shí)現(xiàn)職能型的組織機(jī)構(gòu)模型。 Overall Technology: A framework with multi layers based on Struts+ Spring+JBPM+ Hibernate. The presentation layer adopts Struts to realize MVC mode, adopts page-taglib to realize paging, adopts JSTL and custom tag, adopts Ajax technology to make system having better user experience; the business logic layer utilizes IOC of Spring to maintain the link between business objects, utilizes AOP of Spring to provide declarative transaction management, adopts anemia-type Domain Object model; the dada persistence layer adopts hibernate to realize, and adopts DAO mode to package PO object; Through the integration of JBPM and Spring to realize the document flow module; through the combination with Freemarker template technology to realize dynamic form definition model; to realize expanded authorize and authentication model based on RBCA; to realize functional organization model.責(zé)任描述:參與總體需求分析與架構(gòu)設(shè)計(jì)、Domain Object設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、SSH架構(gòu)搭建及JBPM的整合;同時(shí)實(shí)現(xiàn)主要模塊機(jī)構(gòu)管理、權(quán)限管理和公文流轉(zhuǎn)核心模塊的設(shè)計(jì)實(shí)現(xiàn) Responsibility Description: Participated in the analysis of overall demands and the design of framework, the design of Domain Object, the design of database, the building of SSH framework, the integration of JBPM; In the same time realized the management of main module organizations, rights management, and the design and realization of document flow core module.? 心得體會(huì):對(duì)基于SSH架構(gòu)的多層應(yīng)用有深入體會(huì),對(duì)工作流引擎JBPM的流程定義、部署和多種類型流程節(jié)點(diǎn)使用有進(jìn)一步理解,基于RBAC模式能進(jìn)行授權(quán)認(rèn)證模塊的實(shí)現(xiàn),在該項(xiàng)目中的許多技術(shù)細(xì)節(jié)如:ACL的設(shè)計(jì)技巧,DWR實(shí)現(xiàn)動(dòng)態(tài)授權(quán),DOM4J實(shí)現(xiàn)初始化數(shù)據(jù)注入等等。 Experience: Got deep understanding of the multi layer application of SSH framework, and got further understanding of the flowing definition, deployment of workflow engine, JBPM, and the application of various kinds of flowing nodes. It is also further understood that based on RBAC mode the authorize and authentication module can be realized. Moreover, many technological details in this project, such as the design skills of ACL, the realization of dynamic authorization with DWR, the realization the injection of initial data with DOM4J, etc. are also understood further. 3. 企業(yè)客戶關(guān)系管理系統(tǒng) Relationship Management System for Enterprises 項(xiàng)目介紹:本項(xiàng)目旨在“以客戶為中心,以市場(chǎng)為導(dǎo)向”的企業(yè)經(jīng)營(yíng)管理模式,通過(guò)集中管理客戶信息,并在市場(chǎng)部、銷售部、服務(wù)部等間共享客戶數(shù)據(jù),從而實(shí)現(xiàn)企業(yè)市場(chǎng)營(yíng)銷、銷售管理、客戶服務(wù)和支持等經(jīng)營(yíng)流程信息化,達(dá)到提高客戶服務(wù)效率和銷售人員事務(wù)處理的效率,最終實(shí)現(xiàn)企業(yè)資源的有效利用,提高企業(yè)的客戶服務(wù)質(zhì)量與核心競(jìng)爭(zhēng)力。 Project Introduction: This project aims at the enterprise management mode of “ Customer-oriented and Market-oriented”, It shares customer’s information with Marketing Dept, Sales Dept, and Service Dept through the concentrated management of customer’s information, so that realizes the informationization of enterprise’s operation flow such as marketing, sales management, customer service and support, and enhances the service efficiency for customers and the affairs treatment efficiency of sales staffs, finally realizes the effective utilization of enterprise resources and enhance its service quality and core competitive power. 總體技術(shù):采用JSF + Spring + Ibatis +? Jfreechart的技術(shù)實(shí)現(xiàn):展現(xiàn)層JSF采用Apache的myfaces1.1.1實(shí)現(xiàn)包,JSF基于組件、事件和后臺(tái)bean的交互來(lái)開(kāi)發(fā)應(yīng)用,而不再基于請(qǐng)求相應(yīng)和標(biāo)記來(lái)解決展現(xiàn)層問(wèn)題;利用Spring來(lái)解耦合,管理依賴,將整個(gè)應(yīng)用進(jìn)行整合;持久化層采用輕量級(jí)的ORM解決方案ibatis;對(duì)系統(tǒng)中的多種報(bào)表生成采用Jfreechart技術(shù)。 Overall Technology: It is realized using JSF + Spring + Ibatis +Jfreechart technology. In presentation layer JSF adopts myfaces 1.1.1 of Apache to realize packet, JSF is developed and applied based on interaction of components, events and background bean instead of basing on request corresponding and marks to solve the problems of the presentation layer; it adopts Spring to decouple, manage dependence, and integrate the overall application; the data persistence layer adopts light duty ORM solution, ibatis; and the generation of various kinds of form in the system adopts Jfreechart technology 負(fù)責(zé)工作:參與需求分析,數(shù)據(jù)庫(kù)分析設(shè)計(jì),銷售管理模塊實(shí)現(xiàn)Responsible work: Participated in the demand analysis, the analysis and design of database, and the realization of sales management module. 心得體會(huì):對(duì)本項(xiàng)目背景和需求有進(jìn)一步理解,項(xiàng)目中使用的許多技術(shù)細(xì)節(jié),如:使用Sitemesh控制頁(yè)面布局,理解Sitemesh基本原理;利用POI庫(kù)操縱Excel報(bào)表(批量導(dǎo)入和批量導(dǎo)出客戶數(shù)據(jù))等等。 Experiences: Got further understanding of the background and demand of this project, many details used in this project, such as using Sitemesh to control page layout, understanding the basic principle of Sitemesh; utilizing POI database to handle Excel forms (batch input and batch output the customer’s data), are also deeper understood)

A4JA4J簡(jiǎn)介

A4J是JSF(JavaServer Faces)和Ajax技術(shù)的有機(jī)結(jié)合,其目標(biāo)是將Ajax的功能無(wú)縫融入到JSF組件中,提供更便捷的用戶體驗(yàn)。 最初,A4J獨(dú)立存在,后來(lái)被JBoss收購(gòu),并與RichFaces框架相結(jié)合,進(jìn)一步增強(qiáng)了其功能和控件庫(kù)。 現(xiàn)在,RichFaces已經(jīng)發(fā)展成為一個(gè)集成了Ajax和JSF特性的全面Web開(kāi)發(fā)框架。 在RichFaces中,開(kāi)發(fā)人員可以利用JSF框架的諸多優(yōu)勢(shì),如生命周期管理、靈活的驗(yàn)證和轉(zhuǎn)換機(jī)制,以及對(duì)靜態(tài)和動(dòng)態(tài)資源的有效管理。 A4J使得開(kāi)發(fā)工作更加簡(jiǎn)化,只需按照J(rèn)SF的組件規(guī)范構(gòu)建頁(yè)面,無(wú)需編寫復(fù)雜的JavaScript代碼或依賴其他庫(kù),就能實(shí)現(xiàn)Ajax的精髓——局部刷新,從而提升頁(yè)面的響應(yīng)速度和用戶體驗(yàn)。 A4J的優(yōu)勢(shì)在于它能夠充分利用JSF的結(jié)構(gòu)性優(yōu)勢(shì),使得具有Ajax支持的豐富組件和高度定制的界面設(shè)計(jì)與JSF框架緊密結(jié)合,大大簡(jiǎn)化了開(kāi)發(fā)流程,提高了開(kāi)發(fā)效率和代碼的可維護(hù)性。

Java Server FacesJSF 體系結(jié)構(gòu)

JavaServer Faces (JSF) 的體系結(jié)構(gòu)基于 MVC(模型-視圖-控制器)設(shè)計(jì)模式,為Java Web 用戶界面開(kāi)發(fā)提供了一個(gè)標(biāo)準(zhǔn)且易于管理的框架。 視圖(用戶界面代碼)與模型(應(yīng)用程序數(shù)據(jù)和邏輯)的分離使得應(yīng)用程序的管理更為直觀,用戶與應(yīng)用的交互由前端的“Faces”servlet(控制器)處理,確保了安全性和權(quán)限控制。 JSF 的生命周期中,當(dāng)用戶訪問(wèn)JSF應(yīng)用程序時(shí),Controller servlet首先準(zhǔn)備JSF上下文,存儲(chǔ)所有應(yīng)用數(shù)據(jù),然后引導(dǎo)用戶訪問(wèn)所需的頁(yè)面。 頁(yè)面通常使用簡(jiǎn)單的表達(dá)式語(yǔ)言處理來(lái)自上下文的數(shù)據(jù)。 后續(xù)請(qǐng)求時(shí),控制器會(huì)更新模型數(shù)據(jù)。 開(kāi)發(fā)者可以根據(jù)需要在運(yùn)行時(shí)控制整個(gè)生命周期,實(shí)現(xiàn)高度靈活的應(yīng)用行為管理。 JSF有兩個(gè)主要的實(shí)現(xiàn):Sun的官方實(shí)現(xiàn)和Apache的MyFaces。 兩者都支持JSF 2.0規(guī)范,Sun的實(shí)現(xiàn)可通過(guò)相關(guān)鏈接查閱,而MyFaces的最新版本也提供了Ajax支持的增強(qiáng)和擴(kuò)展,包括分離請(qǐng)求處理生命周期、支持Ajax訪問(wèn)部分組件、改進(jìn)的客戶端和組件級(jí)驗(yàn)證,以及對(duì)標(biāo)準(zhǔn)HTML組件的擴(kuò)展,如日期選擇器、文件上傳等。 此外,還提供了機(jī)制來(lái)減少數(shù)據(jù)更新問(wèn)題,并簡(jiǎn)化了與持久存儲(chǔ)的交互。

AJAX,Flash,Silverlight,JavaFX到底選誰(shuí)

在當(dāng)今世界,用戶只是坐在椅子上等待著觀看AJAX接下來(lái)將提供怎樣的視覺(jué)盛宴,包括:一些較為顯著的視覺(jué)效果和像臺(tái)式機(jī)一樣的互動(dòng),例如, Prototype-esque fades(原型褪色), Dojo style fisheyes(Dojo 風(fēng)格的注視), the near ubiquitous drag-and-drop(無(wú)處不在的拖拉和水滴)。 而且,當(dāng)然,當(dāng)AJAX進(jìn)行異步處理的時(shí)候,如果沒(méi)有了它提供的分散我們注意力的各式動(dòng)畫(huà)的加載,誰(shuí)又能忍受?是的,這樣看來(lái),AJAX無(wú)所不能,并且沒(méi)有任何桌面的視覺(jué)效果和手勢(shì)是安全的,如果它是由網(wǎng)站提供的。 他們對(duì)誰(shuí)有好處? 這曾經(jīng)是我的觀點(diǎn),直到我看到在蘋果公司最近最新發(fā)布的Mac OS X Leopard 版本上的新搜索器。 搜索器包括一個(gè)文件瀏覽功能,即Cover Flow,它可以使用戶通過(guò)網(wǎng)頁(yè)預(yù)覽,將文件以三維的方式展示。 它是這樣一種視覺(jué)效果,這種效果十分依賴向量圖形,這種效果如果僅用AJAX是很難實(shí)現(xiàn)的。 事實(shí)上,像Adobes Flex, Microsofts Silverlight, 以及Sun 最近發(fā)布的JavaFX這樣的計(jì)算技術(shù),使得向量圖形實(shí)質(zhì)上優(yōu)于AJAX提供的Dojo或者Yahoo圖形實(shí)驗(yàn)室(YUI)這種構(gòu)架.無(wú)論相信與否,在網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)中,在基于網(wǎng)絡(luò)的向量圖形的應(yīng)用方面存在巨大的商機(jī),而這絕不僅僅是看起來(lái)比較誘人這么簡(jiǎn)單。 這種需求已經(jīng)被商業(yè)分析中得到的數(shù)據(jù)很好的詮釋了(例如:SAP 和Oracle),就像視頻重放和圖片編輯軟件一樣(例如:YouTube和MixBook).當(dāng)然,RIA交付向量圖象的技術(shù)并不僅僅限于視覺(jué)領(lǐng)域。 基于Flex的字處理器BuzzWord通過(guò)交付一個(gè)完整的網(wǎng)絡(luò)應(yīng)用程序,提供了一個(gè)關(guān)于高清晰度RIA解決方案的生動(dòng)的例子。 這個(gè)網(wǎng)絡(luò)應(yīng)用程序叫做Google Docs,它是一個(gè)基于AJAX,更加流行的網(wǎng)絡(luò)應(yīng)用程序。 因此,向量圖形并不僅僅是高清RIA解決方案提出的。 類似的框架也提供豐富的設(shè)備用來(lái)開(kāi)發(fā)能交付聲音,sockets,本地存儲(chǔ),視頻的應(yīng)用程序,在這個(gè)領(lǐng)域,AJAX要落后了。 AJAX的革新結(jié)束了嗎? 這是否意味著AJAX已經(jīng)完成了它的比賽?一點(diǎn)也不,事實(shí)上,Adobe Flash和相似的技術(shù)正在和AJAX進(jìn)行著競(jìng)爭(zhēng)。 但是就現(xiàn)在來(lái)看,仍然有一些特定的限制使這些高清RIA框架無(wú)法取代AJAX。 在我們考慮是用高清RIA框架還是AJAX的時(shí)候,這有一些更顯著的需要考慮的事情。 需要的插件:高清RIA解決方案需要瀏覽器插件。 在2007年三月份,在美國(guó),加拿大,英國(guó),德國(guó),法國(guó)和日本,大約83.4%的個(gè)人電腦安裝了Flash 9 Player.因此,可以說(shuō)Flash已經(jīng)無(wú)處不在了。 然而,即使是一個(gè)全球性的,最近安裝的版本,升級(jí)插件是一件十分困擾的事情。 多于一半的用戶,當(dāng)被提示需要更新插件的時(shí)候,經(jīng)常會(huì)放棄下載軟件的連接,而轉(zhuǎn)向其他網(wǎng)站(很有可能是一個(gè)計(jì)算機(jī)網(wǎng)站)去下載軟件,為的是避免和別的用戶爭(zhēng)奪下載和安裝軟件。 需要注意到,無(wú)論是JavaFX, 還是Sliverlight現(xiàn)在都沒(méi)有分享到被Adobe Flash Player占領(lǐng)的任何市場(chǎng)份額。 也應(yīng)該注意到被Flash 9 占領(lǐng)的83.4%的市場(chǎng)份額,在跟現(xiàn)代瀏覽器中(例如:IE7.0,Firefox2.0,Safari3.0)支持的AJAX比起來(lái),就顯得黯然失色了。 缺少開(kāi)放標(biāo)準(zhǔn):AJAX,并不像高清RIA 解決方案,它是建立在開(kāi)放標(biāo)準(zhǔn)上的,例如(X)HTML,CSS和JavaScript. HD RIA一直以來(lái),都不是開(kāi)源的,標(biāo)準(zhǔn)比起來(lái)少的可憐。 JavaFX,一開(kāi)始就是被當(dāng)作一種開(kāi)源的成果介紹的。 在這個(gè)時(shí)候,在改變HD RIA 解決方案的的進(jìn)程中,像一個(gè)領(lǐng)導(dǎo)者一樣。 但是它到現(xiàn)在為止卻很少改變。 技能的缺乏:Flex,silverlight,和JavaFX分別介紹了自己的代表性語(yǔ)言。 另一方面,AJAX依賴的是JavaScript。 JavaScript是被廣泛認(rèn)知的,而且很容易和其他主流的技術(shù)相結(jié)合,例如:Ruby-on-Rails, PHP, Java, and . 不能在HTML中很好的顯示:對(duì)于完全用Flex開(kāi)發(fā)的應(yīng)用程序,并不存在這樣的問(wèn)題。 但是對(duì)于已經(jīng)存在的應(yīng)用程序,它就是一個(gè)值得考慮的問(wèn)題了。 AJAX和JavaScript的創(chuàng)造是用來(lái)補(bǔ)充HTML的。 另一方面,F(xiàn)lash在運(yùn)行時(shí),在操作已經(jīng)存在的網(wǎng)頁(yè)結(jié)構(gòu)時(shí),缺少靈活性,而這是JavaScript DOM 對(duì)象提供的。 大量下載印記:基于Flash的RIA解決方案跟依賴本地AJAX支持的解決方案比,趨向于有一個(gè)更大的下載印記。 這種更大下載的結(jié)果時(shí),在應(yīng)用程序安裝的時(shí)候,有一個(gè)延遲的等待。 可查找的,但并不是總能被找到:近年來(lái),搜索引擎在他們各自的網(wǎng)頁(yè)抓取中,引入了檢索swf 文件的能力。 Yahoo和Google是這種文件格式的最好的廣告宣傳提供商,雖然使用的方法(檢索swf文件的方法)并沒(méi)有廣泛的公布,也沒(méi)有很好的理解。 為了優(yōu)化查找結(jié)果,網(wǎng)絡(luò)設(shè)計(jì)者經(jīng)常既建一個(gè)flash網(wǎng)站,又建一個(gè)傳統(tǒng)的HTML網(wǎng)站。 或者在一個(gè)傳統(tǒng)的HTML網(wǎng)站中選擇一個(gè)嵌入的flash電影,作為對(duì)文本內(nèi)容的裝飾。 應(yīng)該注意到,在寫這篇文章的時(shí)候,我并不能知道搜索引擎會(huì)在何時(shí),會(huì)用何種方式把這個(gè)問(wèn)題加入到HD RIA 技術(shù)中,就像JavaFX和Silverlight一樣。 并不是所有的客戶都是平等的:隨著更新的個(gè)人電腦的使用,這已經(jīng)不在是一個(gè)問(wèn)題了。 但是自從HD RIA 環(huán)境大量使用用戶的資源用來(lái)執(zhí)行業(yè)務(wù)邏輯,應(yīng)用性能由客戶機(jī)的配置來(lái)決定了。 因此,客戶體驗(yàn)會(huì)因?yàn)闄C(jī)器配置的不同而不同。 基于AJAX的解決方案有一個(gè)繼承過(guò)來(lái)的服務(wù)端組件,(例如:Oracle ADF Faces Rich Client),可以利用服務(wù)器資源來(lái)裝載處理和表現(xiàn)以保證在客戶端更統(tǒng)一的交付。 讀者應(yīng)該注意,沒(méi)有一種列出的考慮會(huì)阻止你選擇flash或者相似的產(chǎn)品,而去選擇AJAX。 AJAX的確有它自己的缺點(diǎn),有很多。 在近些年,比HD RIA 解決方案顯示出的問(wèn)題多很多。 讓我們關(guān)心的,一些顯著的問(wèn)題包括速度很慢的JavaScript執(zhí)行,內(nèi)存泄露,大量的瀏覽器錯(cuò)誤,兩個(gè)連接的限制,和CSS產(chǎn)生的問(wèn)題。 簡(jiǎn)單的輸入,在Google Maps或者Gmail上用AJAX創(chuàng)建一個(gè)應(yīng)用,你就不能拒絕任何形式的攻擊。 進(jìn)一步講,這篇文章已經(jīng)指出了在哪種情況下,HD RIA 解決方案做的比基于AJAX的解決方案做的好,尤其是在向量圖形的領(lǐng)域。 但是,在這個(gè)平衡的另一端,我們會(huì)顯然的發(fā)現(xiàn)AJAX更適合增量的修改已經(jīng)存在的應(yīng)用程序,在這一點(diǎn)上,flash或者其他HD RIA解決方案做的沒(méi)有AJAX好。 并且AJAX更適合處理文本內(nèi)容。 而文本內(nèi)容又是當(dāng)今網(wǎng)絡(luò)內(nèi)容的主流,雖然更多的媒體中心,實(shí)時(shí)驅(qū)動(dòng)的web3.0可能會(huì)使規(guī)模在不遠(yuǎn)的將來(lái),達(dá)到一個(gè)更高的級(jí)別。 因此,現(xiàn)在所有RIA解決方案都是有限制的。 幸運(yùn)的,AJAX和HD RIA的限制因素,在大多數(shù)情況下,運(yùn)行起來(lái)并不會(huì)產(chǎn)生相互影響。 因此,AJAX和Flash這樣的技術(shù)實(shí)際上很好的互補(bǔ)了,并且,像YouTube和SlideShare已經(jīng)證明了,AJAX和Flash可以結(jié)合起來(lái)用來(lái)創(chuàng)建一個(gè)健壯的應(yīng)用程序可以提供豐富的媒體和動(dòng)態(tài)的文本.但是,這又引入了一個(gè)新的難題,那就是并不是所有的開(kāi)發(fā)者都被平等的創(chuàng)建了,這將導(dǎo)致一個(gè)問(wèn)題,就是是否這個(gè)混合的RIA解決方案只能通過(guò)極端的方式來(lái)達(dá)到? 兩個(gè)世界中最好的,但并不是免費(fèi)的: 最終的測(cè)試的結(jié)果是積極的。 Adobe實(shí)驗(yàn)室最近提供了一個(gè)Flex-AJAX橋,允許開(kāi)發(fā)者用JavaScript來(lái)操縱一個(gè)Flex的應(yīng)用程序。 進(jìn)一步的,Sliverlight DOM可以通過(guò)JavaScript來(lái)訪問(wèn)。 因此,HD RIA解決方案已經(jīng)提供了AJAX的整合點(diǎn)。 然而,盡管有整合到一起的接口,仍然有其他的復(fù)雜的問(wèn)題沒(méi)有顯現(xiàn)出來(lái),也就是找到一個(gè)有經(jīng)驗(yàn)的開(kāi)發(fā)者的難題,這樣的開(kāi)發(fā)者需要有flash,(或者Sliverlight,JavaFX),CSS,HTML, Javascript, 有一些PHP,Ruby-on-Rails, 或者 Java.的知識(shí)。 進(jìn)一步講,開(kāi)發(fā)者的技能一般都是針對(duì)客戶方法和服務(wù)方法分開(kāi)的。 或者精通flash,或者AJAX,但是不精通服務(wù)端的技術(shù)。 相反的說(shuō),也成立。 因此,你需要雇一個(gè)精通flash的人和一個(gè)精通AJAX的人,而不僅僅是他們其中的任何一個(gè)。 這會(huì)使你在雇傭人員上的花費(fèi)翻倍。 最后,基本上是沒(méi)有開(kāi)發(fā)工具的,比把所有技術(shù)都集成到一個(gè)程序開(kāi)發(fā)環(huán)境中的,端到端的開(kāi)發(fā)框架要少得多。 理想情況下,這樣的開(kāi)發(fā)環(huán)境會(huì)包括可視化開(kāi)發(fā)和其他加速編程速度的方法,更進(jìn)一步,會(huì)包括宣布數(shù)據(jù)隱藏的工具。 因此,這就好象是,在試圖平衡flash和AJAX的工程中,技能和工具所提供的生產(chǎn)力并不是足夠的。 AJAX和Flash,最終將結(jié)合到一起 在2004年,JavaServer Faces (JSF) 開(kāi)始采用十分激烈的方式,簡(jiǎn)化網(wǎng)絡(luò)開(kāi)發(fā)并且在一些提供商的幫助下,仿佛成為了期待再一次重振網(wǎng)絡(luò)開(kāi)發(fā)的標(biāo)準(zhǔn)。 JSF是一個(gè)服務(wù)器端的組件框架,這個(gè)框架允許開(kāi)發(fā)者用一個(gè)單一接口去構(gòu)建一個(gè)基于網(wǎng)絡(luò)的,能操作多個(gè)設(shè)備的應(yīng)用程序。 能這樣開(kāi)發(fā)的一個(gè)主要方面是因?yàn)橛幸粋€(gè)可以高度靈活性表現(xiàn)引擎或者一個(gè)更加專業(yè)的表現(xiàn)包。 像Oracle ADF Faces 這樣的構(gòu)件框架引入了表現(xiàn)包,不僅僅表現(xiàn)HTML瀏覽器,智能客戶端,WML瀏覽器,和ASK客戶端,創(chuàng)建用來(lái)交付的多通道而不用去理解內(nèi)在技術(shù)的細(xì)微差別。 你可以很容易的發(fā)現(xiàn)這項(xiàng)技術(shù)是如何擴(kuò)展到AJAX和Flash中去的。 創(chuàng)建一組組件的想法適用于AJAX,同時(shí)也適用于Flash.在這個(gè)想法中AJAX用來(lái)交付增強(qiáng)的窗口,布局管理器,和數(shù)據(jù)表格。 與此同時(shí),基于Flash的組件服務(wù)于更多特定的目的,利于畫(huà)圖,畫(huà)圖表,和其他的數(shù)據(jù)可視化需求。 在開(kāi)發(fā)中使用單一的借口消除了理解JavaScript, (X)HTML, CSS, XML, JSON, and Flash(或者其他RIA解決方案)的需要。 開(kāi)發(fā)者僅需要簡(jiǎn)單的知道java的語(yǔ)義和JSF的接口。 再者,深入理解的需要減少了,因?yàn)榇罅康墓ぞ吆蜑镴SF提供的可視化設(shè)計(jì)(例如:Oracle JDeveloper, NetBeans, Eclipse)。 成果是一個(gè)開(kāi)發(fā)環(huán)境,在這個(gè)開(kāi)發(fā)環(huán)境下,即使水平相差很多的開(kāi)發(fā)者,都可以創(chuàng)造和交付一個(gè)高交互式的RIA。 然而,盡管有很多工具可以選擇,卻很少有JSF組件提供商,在一個(gè)單一的框架中,既提供基于Flash組件,又提供基于AJAX的組件。 一些更著名的JSF組件提供商發(fā)布基于AJAX的組件,包括:Backbase, ICEsoft, Oracle, JBoss,和ILOG。 目前,Oracle ADF Faces Rich Client 代表了唯一的一個(gè)既提供支持AJAX的,又支持Flash的組件。 而且,為了消除任何概念的所有權(quán)干涉,Oracle近日在今年的JavaOne上宣布,Oracle ADF Faces Rich Client對(duì)Apache Foundation的貢獻(xiàn),被當(dāng)作是Rich Client Framework(RCF)。

Swing 或 JavaServer Faces:究竟選擇哪一個(gè)?

Swing 能否經(jīng)受住富互聯(lián)網(wǎng)應(yīng)用程序宣傳熱潮的考驗(yàn)?2006 年 3 月發(fā)布J2EE Web 技術(shù)已經(jīng)從一個(gè)靜態(tài)的內(nèi)容提供環(huán)境迅速發(fā)展為一個(gè)在內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)上運(yùn)行的動(dòng)態(tài)業(yè)務(wù)應(yīng)用程序的可靠平臺(tái)。 Web 的前景體現(xiàn)在,無(wú)論您的業(yè)務(wù)需求如何,瀏覽器都將是您未來(lái)唯一需要的客戶端。 在這種趨勢(shì)的推動(dòng)下,最近掀起了新一輪圍繞高度交互的 Web 界面(基于一組稱作 AJAX 的技術(shù))的宣傳熱潮。 AJAX 與新 J2EE 標(biāo)準(zhǔn) JavaServer Faces (JSF) 的結(jié)合使用在處理 Web 應(yīng)用程序方面有望提供更好的最終用戶體驗(yàn)和認(rèn)可。 AJAX(異步 Javascript+XML 的縮寫)描述了一組現(xiàn)有技術(shù)(如 JavaScript、XML 和文檔對(duì)象模型 (DOM))的使用模式。 不可否認(rèn)的是,AJAX 和 JavaServer Faces 來(lái)勢(shì)迅猛,并將很快擋住 Swing 的去路,而 Swing 自 1998 年以來(lái)一直是用 Java 構(gòu)建豐富用戶界面的標(biāo)準(zhǔn)方法。 瀏覽器將在未來(lái)唱主角?Swing 能否經(jīng)受住富互聯(lián)網(wǎng)應(yīng)用程序宣傳熱潮的考驗(yàn)?本文針對(duì) Swing 和 JavaServer Faces 進(jìn)行了介紹、定位和比較,以幫助開(kāi)發(fā)人員決定對(duì)某種作業(yè)使用哪種技術(shù)。 此外,本文還介紹了 Oracle 應(yīng)用程序開(kāi)發(fā)框架 (ADF) 如何有助于簡(jiǎn)化使用這兩種技術(shù)進(jìn)行的應(yīng)用程序開(kāi)發(fā)。 從Java 到 Swing 再到 JavaServer Faces應(yīng)用程序開(kāi)發(fā)史中曾出現(xiàn)過(guò)許多編程語(yǔ)言。 早在 1991 年,James Gosling 發(fā)明了“Oak”,即 Java 的前身。 由于 Oak 無(wú)法出售,因此 Sun 于 1995 年推出了 Web 編程語(yǔ)言 - Java,此后不久 Java Applet 即成為 Web 應(yīng)用程序開(kāi)發(fā)的這個(gè)“石器時(shí)代”的主導(dǎo)技術(shù)。 1998 年發(fā)布了用于開(kāi)發(fā)輕型 Java Web GUI 和客戶端桌面應(yīng)用程序的 Java Swing 平臺(tái)。 一年以后,Sun 推出了 Java 2 企業(yè)版 (J2EE) 平臺(tái),該平臺(tái)在 6 年后引入了 JavaServer Faces。 Swing 本身是一個(gè)基于抽象窗口工具包 (AWT) 和 Java 基礎(chǔ)類 (JFC) 構(gòu)建的輕型組件集。 從推出到現(xiàn)在的七年多時(shí)間里,Swing 程序包已經(jīng)成為 J2SE 中一個(gè)非常成熟的 Java 庫(kù),并廣泛用在企業(yè)級(jí)業(yè)務(wù)應(yīng)用程序的構(gòu)建中。 Swing 以靈活而強(qiáng)大的開(kāi)發(fā)環(huán)境著稱,它為應(yīng)用程序開(kāi)發(fā)人員提供了大量的控制權(quán)。 毫不夸張地說(shuō),只要是可以用 Java 構(gòu)思的應(yīng)用程序,就可以用 Swing 構(gòu)建它。 但 Swing 的靈活增加了復(fù)雜度和學(xué)習(xí)難度。 類似 Oracle JDeveloper、NetBeans 和 IntelliJ 這樣的 Java IDE 為 Swing 提供了可視的 4GL 編輯環(huán)境,有助于開(kāi)發(fā)人員快速入門并執(zhí)行更深層次的操作,而不必深入學(xué)習(xí) Swing。 2004 年 3 月推出的 JavaServer Faces(也稱作 JSF,或簡(jiǎn)稱為“Faces”)是一個(gè)用于構(gòu)建 Web 應(yīng)用程序的基于組件的框架,該框架并入了 JavaBean 事件模型,用于將信息發(fā)送到其他組件。 作為 J2EE Web 技術(shù)的發(fā)展,JavaServer Faces 將基于模板的編程式 Web 開(kāi)發(fā)與 4GL 類型的開(kāi)發(fā)選項(xiàng)結(jié)合在一起。 J2SE Swing 體系結(jié)構(gòu)盡管Swing 是 Java 標(biāo)準(zhǔn)版 (Java SE) 的正式部分,但它并不是核心 Java 語(yǔ)言的成員,而是被視為一個(gè)標(biāo)準(zhǔn)擴(kuò)展。 以 而非 開(kāi)頭的 Swing 程序包名稱也反映了這一點(diǎn)。 使用 Swing 開(kāi)發(fā)的應(yīng)用程序在 Java 運(yùn)行時(shí)環(huán)境 (JRE) 中執(zhí)行,該環(huán)境可以安裝在本地桌面客戶端中,也可以集成到 Java Web Start 或 Web 瀏覽器中。 所有Swing UI 組件均為 JavaBean,并采用對(duì)象模型控制器體系結(jié)構(gòu),將數(shù)據(jù)表示與對(duì)數(shù)據(jù)的操作分離。 該模型不包含任何 UI 特定的代碼,反之亦然。 模型與 UI 之間的所有信息交換均通過(guò) JavaBean 事件和監(jiān)聽(tīng)器進(jìn)行。 這種職責(zé)劃分使經(jīng)驗(yàn)豐富的 Swing 開(kāi)發(fā)人員能夠自定義組件 UI,而不必更改組件行為。 Swing 中的組件控制器和視圖稱作 UI 代理。 控制器將用戶交互指派給模型,并由模型保存組件的狀態(tài)。 圖1:Swing 體系結(jié)構(gòu) Swing 中的 UI 組件可在運(yùn)行時(shí)通過(guò)屬性方法或在設(shè)計(jì)時(shí)通過(guò)可視編輯器以編程方式進(jìn)行控制。 并非 Swing 中的所有組件均綁定到數(shù)據(jù),某些組件(如按鈕)只需要處理 GUI 狀態(tài)。 UI 組件中的事件通過(guò)注冊(cè)的 JavaBean 監(jiān)聽(tīng)器(如 MouseListener、FocusListener 或 ChangeListener)進(jìn)行檢測(cè)。 ADF 與 SwingSwing 始終存在的難題之一是如何將組件綁定到動(dòng)態(tài)數(shù)據(jù)。 過(guò)去,有許多不同框架已經(jīng)通過(guò)非標(biāo)準(zhǔn)方法多次解決了這一難題。 而作為 JSR-227(用于解決此數(shù)據(jù)綁定難題的建議標(biāo)準(zhǔn))早期采用者的 ADF 以及 ADF Swing 采用標(biāo)準(zhǔn)方法將 Swing 應(yīng)用程序綁定到所有業(yè)務(wù)服務(wù),如 Enterprise JavaBeans、TopLink、Web 服務(wù)、ADF 業(yè)務(wù)組件以及 URL。 ADF Swing 是一個(gè)將 Swing 域模型綁定到 Oracle ADF 綁定的小型 Java 層。 ADF Swing 開(kāi)發(fā)人員采用聲明方式將組件模型設(shè)置為 ADF 綁定中的有名引用。 ADF 中的數(shù)據(jù)控件將一致的客戶端開(kāi)發(fā) API 公開(kāi)給不同的業(yè)務(wù)服務(wù),以便 Swing 開(kāi)發(fā)人員使用。 數(shù)據(jù)控件采用標(biāo)準(zhǔn)方法來(lái)創(chuàng)建、刪除和插入數(shù)據(jù),并采用標(biāo)準(zhǔn)控件來(lái)導(dǎo)航數(shù)據(jù)集。 ADF 綁定將一個(gè)可以從數(shù)據(jù)控件訪問(wèn)的較小的數(shù)據(jù)子集公開(kāi)給 Swing 應(yīng)用程序面板或框架。 Swing 開(kāi)發(fā)人員無(wú)需了解應(yīng)用程序構(gòu)建所基于的業(yè)務(wù)服務(wù),這是因?yàn)樗麄儾辉偬幚硖囟ǖ哪P?API。 同樣,他們并不負(fù)責(zé)資源查找或類似任務(wù)。 所有這些任務(wù)均由 JSR-227 實(shí)現(xiàn)處理,該實(shí)現(xiàn)提供了一個(gè)有效的控制反轉(zhuǎn)機(jī)制。 由于ADF Swing 應(yīng)用程序開(kāi)發(fā)在很大程度上是一個(gè)使用 ADF 執(zhí)行的聲明任務(wù),因此它縮短了新手和 Java 專家的應(yīng)用程序開(kāi)發(fā)周期。 例如,UI 第一綁定使項(xiàng)目團(tuán)隊(duì)可以輕松地進(jìn)行快速原型設(shè)計(jì)。 可以采用概念驗(yàn)證的方式創(chuàng)建 UI 的非綁定版本,然后采用回溯方式將其綁定到服務(wù)。 圖2:ADF Swing 體系結(jié)構(gòu) JavaServer FacesJavaServer Faces 是 Web 應(yīng)用程序開(kāi)發(fā)中的一個(gè)里程碑,它將成為 J2EE 5.0(SUN 最近將其重新命名為 JEE 5.0)中核心 Java 企業(yè)版平臺(tái)的一部分。 JavaServer Faces 可以作為獨(dú)立的 Servlet 在 J2EE1.4 應(yīng)用服務(wù)器中使用。 Web 并非為需要事務(wù)和狀態(tài)處理的業(yè)務(wù)應(yīng)用程序而設(shè)計(jì)。 多年來(lái),開(kāi)發(fā)人員花費(fèi)了大量時(shí)間使用各種技術(shù)(如隱藏的 HTML 域、cookie、URL 或會(huì)話參數(shù))來(lái)跟蹤 Web 應(yīng)用程序的狀態(tài),而這樣做僅僅為了克服 HTTP 協(xié)議無(wú)狀態(tài)這個(gè)問(wèn)題。 JavaServer Faces 有助于開(kāi)發(fā)人員重新關(guān)注應(yīng)用程序的業(yè)務(wù)要求,而不再關(guān)注基礎(chǔ)的交付技術(shù)。 JavaServer Faces 是一個(gè) UI 框架,它對(duì)應(yīng)用程序開(kāi)發(fā)人員隱藏了 HTTP 請(qǐng)求 – 響應(yīng)循環(huán)的細(xì)節(jié)。 與Swing 中的 JavaBean 體系結(jié)構(gòu)相似,JavaServer Faces 使用通過(guò)屬性公開(kāi)狀態(tài)和行為的 UI 組件來(lái)構(gòu)建 Web 界面。 盡管 JavaServer Faces 頁(yè)面通常匯集在 JSP 文件中,但這并不是必需的。 JSF 這項(xiàng)技術(shù)并非只可用于基于瀏覽器的應(yīng)用程序,同時(shí)也可用于構(gòu)建移動(dòng)應(yīng)用程序。 JavaServer Faces 中的 UI 組件是顯示不可知的。 這意味著應(yīng)用程序開(kāi)發(fā)人員并不構(gòu)建針對(duì)特定設(shè)備的應(yīng)用程序,而是構(gòu)建可以在許多設(shè)備上運(yùn)行的應(yīng)用程序。 JSF 中的 UI 組件呈現(xiàn)器類(打包的呈現(xiàn)器集的一部分)決定 UI 的可視化表示。 如果初始應(yīng)用程序請(qǐng)求來(lái)自 Web 瀏覽器,則該表示采用 HTML 格式,否則應(yīng)用程序?qū)凑照?qǐng)求客戶端設(shè)備所支持的方式呈現(xiàn)(假設(shè)該設(shè)備類型存在一組呈現(xiàn)器類)。 類似文本域這樣的 UI 組件通過(guò) ExpressionLanguage (EL) 值綁定綁定到 (JSF) 管理的 bean 模型上。 在值綁定中,EL 用于引用輔助 bean 中的 setter 和 getter 方法對(duì)。 例如,EL 表達(dá)式 #{} 將 JSF 組件綁定到用戶 bean 中的 setFirstname 和 getFirstname 方法上。 EL 綁定另一個(gè)可能的形式是方法綁定。 方法綁定引用受管理 bean 中的方法,并在 JSF 中(就像在按鈕中一樣)用于將操作屬性綁定到視圖層邏輯,以便在復(fù)雜導(dǎo)航情形下或者在需要導(dǎo)航前和導(dǎo)航后處理的情況下執(zhí)行。 圖3:JavaServer Faces 體系結(jié)構(gòu) 受管理 bean 的另一個(gè)角色是將 UI 組件綁定到域數(shù)據(jù),例如訪問(wèn) JDBC 查詢的結(jié)果集或查找 Enterprise JavaBean (EJB) 會(huì)話。 此外,頁(yè)面上的 UI 組件可能在輔助 bean 中包含一個(gè)用于以編程方式訪問(wèn)的表示。 Oracle 應(yīng)用程序開(kāi)發(fā)框架 (ADF) 和 JavaServer FacesOracle JDeveloper 10.1.3 支持通過(guò)可視編輯器進(jìn)行 JavaServer Faces 開(kāi)發(fā)。 此外,Oracle ADF 可用于通過(guò)聲明方式將 JavaServer Faces 和 ADF Faces 組件綁定到業(yè)務(wù)服務(wù)數(shù)據(jù)。 正如在 Swing 的上下文中介紹 Oracle ADF 時(shí)所指出的,使用 Oracle ADF 綁定為 JavaServer Faces Web 應(yīng)用程序開(kāi)發(fā)人員提供了一個(gè)統(tǒng)一的開(kāi)發(fā) API,用于訪問(wèn) Web 服務(wù)、Enterprise Java Bean、TopLink、POJO、ADF 業(yè)務(wù)組件以及其他類型的業(yè)務(wù)服務(wù)。 ADF Faces 是一組基于 JavaServer Faces API 構(gòu)建并可以部署到任何 JSF 實(shí)現(xiàn)(如由 Sun 或 Apache MyFaces 提供的參考實(shí)現(xiàn))的 100 多個(gè) JSF UI 組件的總稱。 除了適用于瀏覽器客戶端的 HTML 呈現(xiàn)器工具包以外,ADF Faces 還為在 telnet 客戶端、移動(dòng)設(shè)備和 PDA 上顯示的 Web 應(yīng)用程序提供了呈現(xiàn)器,并支持作為顯示不可知 Web 應(yīng)用程序開(kāi)發(fā)環(huán)境的 JavaServer Faces 的強(qiáng)大功能。 為將ADF 與 JavaServer Faces 應(yīng)用程序集成,表達(dá)式語(yǔ)言值綁定訪問(wèn) ADF 綁定對(duì)象,而非輔助 bean 中的數(shù)據(jù)。 ADF 綁定對(duì)象(默認(rèn)情況下名為“bindings”)由 ADF servlet 在應(yīng)用程序初始化過(guò)程中創(chuàng)建,并使開(kāi)發(fā)人員能夠訪問(wèn)通過(guò) ADF 數(shù)據(jù)控件和綁定層公開(kāi)的所有集合和方法。 要以編程方式引用和使用輔助 bean 中的 ADF 綁定對(duì)象,可以通過(guò) faces 配置中的 ExpressionLanguage 表達(dá)式 #{bindings} 訪問(wèn)綁定對(duì)象并將其作為受管理屬性的值注入到輔助 bean 中。 圖4:使用 ADF 的 JavaServer Faces 體系結(jié)構(gòu) 履行富互聯(lián)網(wǎng)應(yīng)用程序的諾言:AJAX 和 ADF Faces對(duì)于并非熟悉 Javascript、XML 或文檔對(duì)象模型 (DOM) 等 Web 技術(shù)的開(kāi)發(fā)人員而言,AJAX 易于理解但卻難于實(shí)現(xiàn)。 對(duì)于業(yè)務(wù)應(yīng)用程序而言,僅當(dāng)在 JavaServer Faces 這樣的 Web 應(yīng)用程序框架中以“現(xiàn)成方式”在組件中使用時(shí),AJAX 才有意義。 ADF Faces 提供了部分頁(yè)面呈現(xiàn)和對(duì)話框支持,使開(kāi)發(fā)人員能夠構(gòu)建更好的 Web 客戶端。 作為一個(gè)早期實(shí)現(xiàn)的 AJAX,部分頁(yè)面呈現(xiàn)縮短了客戶端的響應(yīng)時(shí)間,因?yàn)樗鼫p小了只需刷新頁(yè)面的某些部分的網(wǎng)頁(yè)的下載大小。 ADF Faces 的未來(lái)發(fā)展方向是提供一組利用 AJAX 的富互聯(lián)網(wǎng)組件,以便 Web 應(yīng)用程序開(kāi)發(fā)人員能夠構(gòu)建響應(yīng)性和交互性較高的 Web 客戶端,而不必編寫 JavaScript 或 DHTML 代碼。 在 JavaOne 2005 召開(kāi)期間首次展示了 ADF Faces 富互聯(lián)網(wǎng)應(yīng)用程序客戶端的預(yù)覽版本。 在什么場(chǎng)合使用什么技術(shù)? 當(dāng)決定對(duì)新應(yīng)用程序開(kāi)發(fā)使用哪種技術(shù)時(shí),應(yīng)用程序的要求(而非各種技術(shù)的功能)是一個(gè)不錯(cuò)的指標(biāo)。 以下是對(duì)兩種技術(shù)的簡(jiǎn)要分類比較 開(kāi)發(fā):主要的 Java IDE 支持對(duì) Swing 和 JavaServer Faces 進(jìn)行可視開(kāi)發(fā)。 開(kāi)發(fā) JavaServer Faces 應(yīng)用程序時(shí),開(kāi)發(fā)人員可以獲得很多好處而不必編寫 Java 代碼。 組件:Swing 和 JavaServer Faces 均基于組件,并將 JavaBeans 用于其 UI 組件。 還可以創(chuàng)建在應(yīng)用程序中使用的自定義組件。 頁(yè)面和布局:Swing 中的布局通過(guò)嵌套 Swing 面板定義。 Swing 組件的位置及其調(diào)整大小的行為通過(guò) LayoutManagers 確定。 同樣,在 JavaServer Faces 中,布局通過(guò)容器(如 ADF Faces 中的 PanelPage 和 PanelBox)定義。 每個(gè)容器可以有很多個(gè)子組件,而其中的每個(gè)子組件本身也是容器。 盡管使用 HTML 表格安排 JSF 應(yīng)用程序的布局可能比較吸引人,但在處理 JSF 應(yīng)用程序時(shí)建議您不要混合使用多技術(shù)。 UI 響應(yīng)性:AJAX 更適合于 Web 應(yīng)用程序,它可以根據(jù)提供的輸入或模型層中引發(fā)的事件向用戶立即提供反饋。 Swing 用戶界面具有高響應(yīng)性,并可以刷新屏幕上的特定區(qū)域而不用刷新整個(gè)屏幕。 例如,股票應(yīng)用程序可以向 Swing 應(yīng)用程序發(fā)送有關(guān)已更改值的信息,無(wú)需重新查詢即可將該信息顯示給用戶。 更新、插入和刪除:Web 模型基于 HTTP 協(xié)議,該協(xié)議并非為事務(wù)應(yīng)用程序和動(dòng)態(tài)業(yè)務(wù)應(yīng)用程序而設(shè)計(jì)。 JavaServer Faces 自動(dòng)處理 Web 開(kāi)發(fā)人員以往所面臨的大量問(wèn)題,但在處理多行更新方面,有時(shí)仍需要開(kāi)發(fā)人員親自操作。 而在 Swing 中,多行操作對(duì)于應(yīng)用程序開(kāi)發(fā)人員(如使用 ADF Swing 的開(kāi)發(fā)人員)而言比較簡(jiǎn)單。 外觀: Swing 支持動(dòng)態(tài)外觀類,這些類在應(yīng)用程序啟動(dòng)時(shí)向其應(yīng)用特定顏色方案。 更改應(yīng)用程序外觀不需要更改應(yīng)用程序代碼。 JavaServer Faces 使用樣式表顯示不同的用戶外觀。 此外,Oracle ADF Faces 還提供了一個(gè)稱作“換膚”的特性,其作用與 Swing 中的外觀類相似。 國(guó)際化:這兩種技術(shù)均支持使用資源包進(jìn)行字符串翻譯。 JavaServer Faces 包含客戶端上的瀏覽器設(shè)置中的首選用戶語(yǔ)言,而 Swing 應(yīng)用程序根據(jù) Java 運(yùn)行時(shí)環(huán)境中的區(qū)域設(shè)置確定語(yǔ)言。 JavaServer Faces 和 Swing 均可以編程方式設(shè)置語(yǔ)言,以便應(yīng)用程序用戶可以從應(yīng)用程序中選擇一種翻譯。 事件模型:JavaServer Faces 和 Swing 組件均使用 JavaBean 事件模型發(fā)布有關(guān)模型或組件更改的信息。 相關(guān)各方可以使用 JavaBean 監(jiān)聽(tīng)器注冊(cè)事件,如值更改事件、屬性更改事件或階段事件。 鍵盤快捷方式:盡管這兩種技術(shù)均支持鍵盤快捷方式,但由于 Swing 并不依賴于瀏覽器,因此在這方面優(yōu)勢(shì)比較明顯。 所有鍵盤功能均由 Swing 處理并可以由應(yīng)用程序開(kāi)發(fā)人員控制。 桌面集成:安裝到本地的 Swing 應(yīng)用程序擁有客戶端桌面的完全訪問(wèn)權(quán)限。 JavaServer Faces 通過(guò)上載和下載文件只提供有限的桌面集成。 導(dǎo)航:Swing 只具有編程式導(dǎo)航功能,而不存在為 Swing 標(biāo)準(zhǔn)(定義應(yīng)根據(jù)操作輸出顯示哪個(gè)面板)定義的外部控制器。 JavaServer Faces 使用一個(gè)控制器組件,可以根據(jù)計(jì)算輸出使用指定的導(dǎo)航示例對(duì)其進(jìn)行配置。 導(dǎo)航可以定義為操作組件的靜態(tài)字符串,而對(duì)于更復(fù)雜的導(dǎo)航,則可以用 Java 表示。 應(yīng)用程序控制:與導(dǎo)航相關(guān),相對(duì)于在 JavaServer Faces 中而言,應(yīng)用程序開(kāi)發(fā)人員可以更好地控制客戶端中的 Swing 應(yīng)用程序。 用戶在 Java 運(yùn)行時(shí)環(huán)境中運(yùn)行 Swing 應(yīng)用程序,而這并不會(huì)因?yàn)椋ɡ纾┕ぞ邫诓皇菓?yīng)用程序本身的一部分而引起沖突。 在瀏覽器中運(yùn)行的 JavaServer Faces 應(yīng)用程序總要求開(kāi)發(fā)人員解決已知的瀏覽器限制。 如今,沒(méi)有使應(yīng)用程序開(kāi)發(fā)人員能夠關(guān)閉不需要的瀏覽器行為或功能(如瀏覽器后退按鈕或?yàn)g覽器保留的鍵盤快捷方式)的通用瀏覽器標(biāo)準(zhǔn)和一組通用 API。 性能:對(duì)于執(zhí)行數(shù)據(jù)密集型操作的應(yīng)用程序而言,JavaServer Faces 的性能似乎要高于 Swing,這是因?yàn)樗伙@示對(duì)客戶端的更改。 使用 AJAX,所需的下載大小將變得更小,從而性能將得到進(jìn)一步的提高。 盡管 Swing 可以使用遠(yuǎn)程服務(wù)器上部署的業(yè)務(wù)邏輯,但這需要使用遠(yuǎn)程方法調(diào)用 (RMI),該調(diào)用的性能要低于 JavaServer Faces 模型。 但應(yīng)始終針對(duì)單個(gè)應(yīng)用程序來(lái)分析網(wǎng)絡(luò)性能,并應(yīng)在可能的用戶界面中考慮應(yīng)用程序的要求。 安全性:JavaServer Faces 集成了聲明式 J2EE 安全性,從而易于保護(hù) Web 應(yīng)用程序以及與一次性登錄集成。 Swing 更難于保護(hù),且將基于 J2SE 權(quán)限的安全性與需要更多專業(yè)技能的 Java 驗(yàn)證和授權(quán)服務(wù) (JAAS) 結(jié)合使用。 部署:JavaServer Faces 部署到 J2EE 容器并從 Web 中進(jìn)行訪問(wèn)。 該部署的體系結(jié)構(gòu)既可以是兩層的(其中的業(yè)務(wù)邏輯層與視圖層位于同一服務(wù)器上)也可以是三層的。 Swing 通常部署到本地客戶端上,或通過(guò) JavaWeb Start(J2SE 中一個(gè)基于服務(wù)器的軟件管理選件)進(jìn)行部署。 對(duì)于 JavaServer Faces 而言,使用 Oracle Application Server Control 或相似的管理控制臺(tái)可以使部署變得更簡(jiǎn)單、更易于管理。 綜上所述,如果應(yīng)用程序要求對(duì)用戶輸入或更改用戶顯示的事件立即做出響應(yīng),則 應(yīng)使用 Swing。 這對(duì)在一個(gè)屏幕上顯示多個(gè)主/從相關(guān)性的復(fù)雜用戶界面也是如此。 此外,與 Web 相比,Swing 還可以為需要執(zhí)行即時(shí)項(xiàng)目驗(yàn)證的應(yīng)用程序(可能基于復(fù)雜的邏輯)提供更好的支持。 使用 Swing 的另一個(gè)重要原因是需要不僅能文件上載和下載的桌面集成。 此類集成的例子有本地打印機(jī)訪問(wèn)、對(duì)電話或掃描儀等外部設(shè)備的訪問(wèn)。 此外,與 Web 技術(shù)(其中封閉瀏覽器使用某些鍵盤組合)相比,Swing 可以為需要定義其自身的鍵盤映射的應(yīng)用程序提供更好的服務(wù)。 在構(gòu)建 Swing 應(yīng)用程序時(shí),其他瀏覽器功能(如可能妨礙業(yè)務(wù)控制的應(yīng)用程序?qū)Ш降臑g覽器后退按鈕)不會(huì)成為問(wèn)題。 某些業(yè)務(wù)要求應(yīng)用程序脫機(jī)運(yùn)行(即與網(wǎng)絡(luò)斷開(kāi)連接),您可以根據(jù)此要求來(lái)構(gòu)建 Swing 應(yīng)用程序。 最后,Swing 應(yīng)用程序只使用一種語(yǔ)言開(kāi)發(fā),而 JavaServer Faces 混合使用 Java、XML 和 ExpressionLanguage 等技術(shù)。 如果需要可以從任何位置(不要求安裝客戶端)訪問(wèn)應(yīng)用程序,則 應(yīng)使用 JavaServer Faces。 這包括可能為 PDA、移動(dòng)電話和 telnet 客戶端等顯示設(shè)備提供的支持。 與 Swing 不同,JavaServer Faces 可以通過(guò)防火墻(使用 HTTP 或 HTTPS 來(lái)保護(hù)客戶端-服務(wù)器通信)進(jìn)行輕松的運(yùn)行。 由于邏輯在服務(wù)器上執(zhí)行,因此 JavaServer Faces 更易于部署并需要更少的客戶端資源。 如今,互聯(lián)網(wǎng)應(yīng)用程序已得到普遍使用,因此您可以假設(shè)應(yīng)用程序用戶熟悉 Web 應(yīng)用程序的外觀和使用。 這降低了用戶在使用新應(yīng)用程序時(shí)的學(xué)習(xí)難度。 安全性是使用基于 Web 的 JavaServer Faces 應(yīng)用程序的另一個(gè)重要原因。 盡管可以使用 JAAS 構(gòu)建安全的 Swing 應(yīng)用程序,但構(gòu)建與服務(wù)器上容器管理的安全性和一次性登錄集成的基于 Web 的應(yīng)用程序則更為簡(jiǎn)單。 此外,與在 Swing 中相比,在 JSF 中更容易實(shí)現(xiàn)需要將其中的身份發(fā)送到其他組件或應(yīng)用程序的安全性集成。 但您應(yīng)該知道的是,將 JSF 與 AJAX 結(jié)合使用是基于 Javascript(需要瀏覽器支持)的。 將來(lái),Swing 技術(shù)如今具有的優(yōu)點(diǎn)將逐漸消失。 例如在美國(guó),賓西法尼亞和舊金山兩座城市已經(jīng)啟動(dòng)了一些在整個(gè)城市提供無(wú)線訪問(wèn)的項(xiàng)目。 一旦世界上的其他國(guó)家/地區(qū)采用了該模型,那么在斷開(kāi)連接模式下工作(Swing 當(dāng)前的優(yōu)點(diǎn))將不再必要。 有關(guān) Swing 逐漸失去優(yōu)勢(shì)的另一個(gè)例子是 AJAX 有望為 Web 應(yīng)用程序帶來(lái)的即時(shí)客戶端顯示響應(yīng)這一優(yōu)點(diǎn)。 有選擇的生產(chǎn)效率:是否只須學(xué)習(xí)一種技術(shù)? 成功開(kāi)發(fā) J2EE 應(yīng)用程序需要 J2EE 框架和 Java IDE,它們盡量對(duì)應(yīng)用程序開(kāi)發(fā)人員隱藏復(fù)雜性,同時(shí)還實(shí)施了最佳的編碼實(shí)踐。 一項(xiàng)互聯(lián)網(wǎng)工作招聘快速調(diào)查顯示,Web 應(yīng)用程序開(kāi)發(fā)人員的就業(yè)市場(chǎng)遠(yuǎn)遠(yuǎn)大于 Swing 應(yīng)用程序開(kāi)發(fā)人員。 因此,在理想情況下您需要學(xué)習(xí)的一門技術(shù)是 Web 應(yīng)用程序開(kāi)發(fā),其中包括 JavaServer Faces、AJAX 和 JavaServer Pages。 在需要開(kāi)發(fā) Swing 應(yīng)用程序時(shí),如果將 Oracle 應(yīng)用程序開(kāi)發(fā)框架和 Oracle JDeveloper 與 Swing 結(jié)合使用,則 Web 應(yīng)用程序開(kāi)發(fā)技術(shù)就足夠了。 Oracle JDeveloper 是一個(gè)支持 J2EE 桌面和 Web 應(yīng)用程序的集成 Java IDE。 使用 Oracle 應(yīng)用程序開(kāi)發(fā)框架,應(yīng)用程序開(kāi)發(fā)人員無(wú)須再學(xué)習(xí)如何使用不同的 API 來(lái)訪問(wèn)各種持久層技術(shù),使用一個(gè)一致的 API 就可以了。 使用Oracle ADF,Web 應(yīng)用程序開(kāi)發(fā)人員可以在設(shè)計(jì)時(shí)和運(yùn)行時(shí)使用與 Swing 應(yīng)用程序開(kāi)發(fā)人員構(gòu)建 Java 桌面應(yīng)用程序所使用的同一組元數(shù)據(jù)文件。 由于提供了相似的開(kāi)發(fā)環(huán)境,因此 Swing 應(yīng)用程序開(kāi)發(fā)人員將發(fā)現(xiàn)開(kāi)發(fā) Web 應(yīng)用程序其實(shí)比較簡(jiǎn)單,反之亦然。 因此,如果您必須只學(xué)習(xí)一種技術(shù),則建議您最好學(xué)習(xí)如何使用 Oracle 應(yīng)用程序開(kāi)發(fā)框架開(kāi)發(fā) Web 應(yīng)用程序。 總結(jié)JavaServer Faces 與 AJAX 的發(fā)展過(guò)程就像人類學(xué)習(xí)走路一樣,是一個(gè)漸進(jìn)的過(guò)程。 Web 應(yīng)用程序最初以靜態(tài)界面形式出現(xiàn),現(xiàn)在已經(jīng)逐步演變?yōu)橐粋€(gè)動(dòng)態(tài)應(yīng)用程序平臺(tái)。 AJAX 只不過(guò)是需要在其最具有意義的環(huán)境 - JSF 中實(shí)現(xiàn)的下一個(gè)邏輯步驟。 擁有富互聯(lián)網(wǎng)客戶端使開(kāi)發(fā)人員可以選擇使用適當(dāng)?shù)募夹g(shù)解決問(wèn)題。 富互聯(lián)網(wǎng)應(yīng)用程序 (AJAX)基于組件的 Web 客戶端 (JSF)基于動(dòng)態(tài)標(biāo)記的 Web 客戶端 (JSP)桌面集成客戶端 (Swing)AJAX 闡述了一種使 J2EE 應(yīng)用程序開(kāi)發(fā)人員能夠?qū)?fù)雜的業(yè)務(wù)應(yīng)用程序發(fā)布到 Web 的可能。 作為 Swing 開(kāi)發(fā)人員,您不必在意圍繞 AJAX 展開(kāi)的宣傳熱潮,但應(yīng)在意它的動(dòng)機(jī)。 宣傳是為了推廣新機(jī)會(huì),而這正體現(xiàn)了 JavaServer Faces 和 AJAX 的本質(zhì):為應(yīng)用程序開(kāi)發(fā)人員構(gòu)建富 Web 應(yīng)用程序提供新機(jī)會(huì)。 Swing 是為客戶端桌面開(kāi)發(fā) Java 應(yīng)用程序的標(biāo)準(zhǔn)方法,并且它要解決的開(kāi)發(fā)問(wèn)題與 JavaServer Faces 和 AJAX 不同。 它通過(guò) Community Process 以及 Sun(它還領(lǐng)導(dǎo)了 Java 桌面網(wǎng)絡(luò)組件 (JDNC) 項(xiàng)目)的努力得到不斷發(fā)展和改進(jìn)。 盡管Swing 與 JavaServer Faces/AJAX 在功能上存在重疊,但兩者并不直接競(jìng)爭(zhēng)。 為某項(xiàng)工作選擇的技術(shù)必須解決您要解決的問(wèn)題,而反之則不然。 使用 Oracle 應(yīng)用程序開(kāi)發(fā)框架,開(kāi)發(fā)人員可以靈活地選擇相應(yīng)的技術(shù),以便使用一種基礎(chǔ)技術(shù)集開(kāi)發(fā) Web 應(yīng)用程序和桌面應(yīng)用程序。 Frank Nimphius 和Duncan Mills 是Oracle 開(kāi)發(fā)人員工具部門的產(chǎn)品經(jīng)理,兩人均為 Oracle ACE。



相關(guān)標(biāo)簽: 使用JavaServer、 Faces和AJAX增強(qiáng)用戶交互、 JSF、 jsf使用css、

上一篇:聲明式組件生命周期管理聲明方法的格式

下一篇:JSF使用JavaServerFaces創(chuàng)建響應(yīng)式Web設(shè)計(jì)j

內(nèi)容聲明:

1、本站收錄的內(nèi)容來(lái)源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請(qǐng)聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請(qǐng)聯(lián)系我們進(jìn)行舉報(bào)處理!
4、本文地址:http://www.lmxpnzry.com/article/f2a231afe22ebe4340a3.html,復(fù)制請(qǐng)保留版權(quán)鏈接!


溫馨小提示:在您的網(wǎng)站做上本站友情鏈接,訪問(wèn)一次即可自動(dòng)收錄并自動(dòng)排在本站第一位!
隨機(jī)文章
解開(kāi)sethc.exe的神秘面紗:超越輔助功能的強(qiáng)大工具 (解開(kāi)瑟利亞封印)

解開(kāi)sethc.exe的神秘面紗:超越輔助功能的強(qiáng)大工具 (解開(kāi)瑟利亞封印)

簡(jiǎn)介sethc.exe是Windows操作系統(tǒng)中一個(gè)低調(diào)而強(qiáng)大的工具,通常被稱為,粘滯鍵實(shí)用程序,它最初旨在為那些有身體殘疾、需要使用粘滯鍵功能的人提供幫助,但它還擁有超越輔助功能的廣泛用途,使其成為網(wǎng)絡(luò)安全專業(yè)人士、系統(tǒng)管理員和好奇用戶的寶貴工具,sethc.exe的功能作為粘滯鍵實(shí)用程序,sethc.exe允許用戶通過(guò)按五次Sh...。

最新資訊 2024-09-30 17:11:41

在 Tomcat 環(huán)境中配置環(huán)境變量:分步說(shuō)明 (在tomcat上發(fā)布javaweb應(yīng)用默認(rèn)在什么目錄)

在 Tomcat 環(huán)境中配置環(huán)境變量:分步說(shuō)明 (在tomcat上發(fā)布javaweb應(yīng)用默認(rèn)在什么目錄)

本文將分步指導(dǎo)如何在Tomcat環(huán)境中配置環(huán)境變量,以便在發(fā)布JavaWeb應(yīng)用程序時(shí)指定特定配置,發(fā)布JavaWeb應(yīng)用程序的默認(rèn)目錄在Tomcat環(huán)境中,JavaWeb應(yīng)用程序通常發(fā)布在以下目錄中,webapps該目錄位于Tomcat安裝目錄的根目錄下,配置環(huán)境變量要配置環(huán)境變量,請(qǐng)執(zhí)行以下步驟,1.修改server.xml文件...。

本站公告 2024-09-28 18:51:04

揭秘 FillSolidRect 函數(shù):繪制矩形的藝術(shù)與科學(xué) (揭秘英國(guó)新首相:草根律師 愛(ài)踢球)

揭秘 FillSolidRect 函數(shù):繪制矩形的藝術(shù)與科學(xué) (揭秘英國(guó)新首相:草根律師 愛(ài)踢球)

在計(jì)算機(jī)圖形學(xué)中,矩形是一個(gè)基本且重要的圖形元素,F(xiàn)illSolidRect函數(shù)是GDI,中用于繪制實(shí)心矩形的函數(shù),它是一個(gè)強(qiáng)大的工具,可用于創(chuàng)建各種形狀和效果,F(xiàn)illSolidRect函數(shù)簡(jiǎn)介FillSolidRect函數(shù)的原型如下,voidFillSolidRect,Graphics^graphics,Brush^brush,i...。

最新資訊 2024-09-27 13:58:34

實(shí)例變量的魔法:賦予對(duì)象靈活性和可擴(kuò)展性 (實(shí)例變量的魔法是什么)

實(shí)例變量的魔法:賦予對(duì)象靈活性和可擴(kuò)展性 (實(shí)例變量的魔法是什么)

引言在面向?qū)ο缶幊?,OOP,中,實(shí)例變量扮演著至關(guān)重要的角色,它們賦予對(duì)象靈活性、可擴(kuò)展性和可定制性,本文將探討實(shí)例變量的魔法,展示它們?nèi)绾问箤?duì)象能夠以動(dòng)態(tài)的方式存儲(chǔ)和處理數(shù)據(jù),并輕松適應(yīng)不斷變化的需求,什么是實(shí)例變量,實(shí)例變量是與特定對(duì)象關(guān)聯(lián)的數(shù)據(jù)成員,它們存儲(chǔ)有關(guān)該對(duì)象狀態(tài)的特定信息,如姓名、年齡或位置,與類變量,與整個(gè)類關(guān)聯(lián),不...。

技術(shù)教程 2024-09-25 04:09:10

JavaScript導(dǎo)航工具箱:掌握window.history.back()的強(qiáng)大功能 (javascript)

JavaScript導(dǎo)航工具箱:掌握window.history.back()的強(qiáng)大功能 (javascript)

作為JavaScript開(kāi)發(fā)人員,在處理Web瀏覽器的導(dǎo)航時(shí),有必要掌握window.history.back,方法,它允許您控制瀏覽器歷史記錄,為用戶提供無(wú)縫的瀏覽體驗(yàn),本文將深入探討window.history.back,的強(qiáng)大功能,并提供實(shí)際示例來(lái)說(shuō)明它的用法,window.history.back,簡(jiǎn)介window.hi...。

最新資訊 2024-09-24 22:36:57

Dapr(depression)

Dapr(depression)

概述抑郁癥是一種常見(jiàn)的心理健康狀況,其特征是持續(xù)的情緒低落、喪失興趣或愉悅感,它是世界上首要致殘因素之一,影響著全球超過(guò)2.8億人,癥狀抑郁癥的癥狀可能因人而異,但常見(jiàn)癥狀包括,持續(xù)的情緒低落或悲傷喪失興趣或愉悅感疲勞或精力不足食欲和睡眠模式的變化注意力和集中力困難自卑感或內(nèi)疚感自殺念頭或行為原因抑郁癥的確切原因尚不清楚,但被認(rèn)為是由...。

最新資訊 2024-09-24 19:28:29

SQL 編程高級(jí)技巧:探索復(fù)雜的查詢和優(yōu)化 (sql 高級(jí)編程)

SQL 編程高級(jí)技巧:探索復(fù)雜的查詢和優(yōu)化 (sql 高級(jí)編程)

簡(jiǎn)介掌握SQL編程的高級(jí)技巧對(duì)于數(shù)據(jù)分析師、數(shù)據(jù)科學(xué)家和開(kāi)發(fā)人員至關(guān)重要,通過(guò)了解復(fù)雜的查詢技術(shù)和優(yōu)化策略,您可以最大限度地提高查詢性能、提取有價(jià)值的見(jiàn)解并解決復(fù)雜的數(shù)據(jù)問(wèn)題,復(fù)雜的查詢技術(shù)遞歸查詢遞歸查詢?cè)试S在單一查詢中多次引用同一表,這對(duì)于處理層次數(shù)據(jù)或計(jì)算累積聚合非常有用,例如,查找所有子類別的ID和名稱,sqlWITHRECU...。

技術(shù)教程 2024-09-16 05:29:17

釋放數(shù)據(jù)庫(kù)的潛力:優(yōu)化 SQL 索引以獲得超快速查詢 (釋放數(shù)據(jù)庫(kù)的SQL語(yǔ)句)

釋放數(shù)據(jù)庫(kù)的潛力:優(yōu)化 SQL 索引以獲得超快速查詢 (釋放數(shù)據(jù)庫(kù)的SQL語(yǔ)句)

識(shí)別未使用的或低效的索引,移除或重建未使用的索引可以改善性能,示例考慮一個(gè)包含客戶記錄的表,客戶表中最常查詢的列是客戶ID和姓名,為了優(yōu)化查詢,我們可以創(chuàng)建以下索引,CREATEINDEXIX,Customer,IDONCustomers,Customer,ID,CREATEINDEXIX,Customer,NameONCustom...。

最新資訊 2024-09-14 14:15:28

如何培養(yǎng)兒童獨(dú)立解決問(wèn)題的技能:循序漸進(jìn)的 (如何培養(yǎng)兒童的觀察力)

如何培養(yǎng)兒童獨(dú)立解決問(wèn)題的技能:循序漸進(jìn)的 (如何培養(yǎng)兒童的觀察力)

會(huì),8.設(shè)定切合實(shí)際的目標(biāo)設(shè)定切合實(shí)際的目標(biāo)對(duì)于培養(yǎng)孩子的獨(dú)立性至關(guān)重要,避免設(shè)定太高的目標(biāo),因?yàn)檫@可能會(huì)導(dǎo)致沮喪和挫敗感,從小處著手,隨著他們能力的提高逐步提升難度,這有助于他們建立信心并保持動(dòng)力,9.表?yè)P(yáng)成功當(dāng)孩子獨(dú)立解決問(wèn)題時(shí),要表?yè)P(yáng)他們的努力和成功,這有助于他們維持動(dòng)力并強(qiáng)化這種行為,避免物質(zhì)獎(jiǎng)勵(lì),而是專注于他們的成就感和內(nèi)心...。

互聯(lián)網(wǎng)資訊 2024-09-14 13:52:35

十步成神:從零基礎(chǔ)到精通 PHP (十步神仙起點(diǎn)中文網(wǎng))

十步成神:從零基礎(chǔ)到精通 PHP (十步神仙起點(diǎn)中文網(wǎng))

十步仙緣起點(diǎn)中文網(wǎng)傾情奉獻(xiàn),為您帶來(lái)最全面的PHP學(xué)習(xí)指南,助您從零基礎(chǔ)邁向PHP精通!第一章,初識(shí)PHP什么是PHPPHP的特點(diǎn)PHP的安裝與配置第二章,變量與常量變量的定義與使用變量的數(shù)據(jù)類型常量的定義與使用第三章,運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符表達(dá)式第四章,條件語(yǔ)句if語(yǔ)句switch語(yǔ)句三元運(yùn)算符第五章,循環(huán)語(yǔ)句...。

技術(shù)教程 2024-09-09 09:42:00

提高 PHP 應(yīng)用程序性能的優(yōu)化指南 (如何提高php性能)

提高 PHP 應(yīng)用程序性能的優(yōu)化指南 (如何提高php性能)

在當(dāng)今快節(jié)奏的數(shù)字世界中,網(wǎng)站和應(yīng)用程序的性能至關(guān)重要,用戶期望快速加載和響應(yīng)迅速的應(yīng)用程序,而緩慢的性能會(huì)對(duì)用戶體驗(yàn)產(chǎn)生負(fù)面影響,甚至導(dǎo)致收入損失,對(duì)于PHP應(yīng)用程序來(lái)說(shuō),優(yōu)化性能至關(guān)重要,因?yàn)镻HP是一種解釋性語(yǔ)言,可能比編譯語(yǔ)言如C,慢,本文將提供一系列經(jīng)過(guò)驗(yàn)證的優(yōu)化技術(shù),幫助您提升PHP應(yīng)用程序的性能,優(yōu)化代碼1.緩存使用o...。

最新資訊 2024-09-08 19:26:28

Stack Overflow(stackoverflow中文官網(wǎng))

Stack Overflow(stackoverflow中文官網(wǎng))

StackOverflow是一個(gè)問(wèn)答網(wǎng)站,致力于解決計(jì)算機(jī)編程方面的問(wèn)題,它成立于2008年,現(xiàn)已成為全球最大的編程社區(qū)之一,中文官網(wǎng)StackOverflow中文官網(wǎng)于2012年推出,致力于為中國(guó)開(kāi)發(fā)者提供一個(gè)交流和學(xué)習(xí)的平臺(tái),中文官網(wǎng)由StackOverflow官方團(tuán)隊(duì)運(yùn)營(yíng),提供與英文官網(wǎng)相同的功能,包括問(wèn)題提問(wèn)、回答、投票和評(píng)論...。

最新資訊 2024-09-05 13:07:59

Copyright ? 2025 聚集網(wǎng) All Rights Reserved
此內(nèi)容系本站根據(jù)來(lái)路自動(dòng)抓取的結(jié)果,不代表本站贊成被顯示網(wǎng)站的內(nèi)容或立場(chǎng)。
本頁(yè)閱讀量次 | 本站總訪問(wèn)次 | 本站總訪客人 | 今日總訪問(wèn)次 | 今日總訪客人 | 昨日總訪問(wèn)次 | 昨日總訪客人 |
技術(shù)支持:聚集網(wǎng)

亚洲AV优女天堂熟女| 大帝A∨无码视频在线播放| 久久国产精品99久久人人澡| 性一交一乱一伦一| 国产SUV精品一区二区88L| 日韩欧美操逼视频| おやすみせくよ晚安免费影院| 免费高清AV一区二区三区 | 午夜一区欧美二区高清三区 | 国产日产欧产精品精品| 少妇被躁爽到高潮无码人狍大战| 波多野42部无码喷潮在线| 欧美最猛黑人AAAAAXXX片| 4HU四虎永久在线影院| 免费无码AV片在线观| 中文有码无码人妻在线短视频| 久久久久亚洲AV成人人电影 | 久久无码成人影片| 一区二区三区无码在线观看| 久久无码一区二区| 伊人久久精品AV无码一区| 久久免费观看午夜成人网站| 一二三四五在线播放免费观看中文 | 18禁裸乳无遮挡免费网站| 妺妺窝人体色WWW在线图片| 2020亚洲无码| 欧美成人精品欧美一级乱黄| 99久久精品无码一区二区三区| 欧美激情一区二区三区| Z0ZOZ0另类Z0ZO| 日本WV一本一道久久香蕉| 吃了继兄开的药后我做的梦更长了| 日韩精品人成在线播放| 疯狂做受XXXX高潮国产| 为了撞上你1∨1SC| 国产麻花豆剧传媒精品MV在线 | 精品国产福利在线观看| 亚洲日韩一区二区三区| 久久亚洲国产精品成人AV秋霞| 中文字幕乱码无码人妻系列蜜桃| 女被啪到高潮的GIF动态图无遮| 91人妻人人揉人人躁人人| 强行暴力肉体进入HDⅩXXX| 波多野结衣一区二区免费视频 | 把她送上一个又一个巅峰| 日韩精品一区二区三区在线观看| 国产98色在线 | 免费| 午夜无码一区二区三区在线观看| 国产自偷在线拍精品热乐播AV| 亚洲国产成人五月综合网| 久久久久久精品免费免费WEI| 征服好友的保守人妻| 欧美香蕉爽爽人人爽| 成人年无码AV片在线观看 | 亚洲第一狼人伊人AV| 久久久久人妻一区精品色欧美| 性欧美玩弄性少妇HD| 人妻熟妇与黑人HDXⅩXX| 公交车被CAO得合不拢腿视频| 无码人妻精品一区二区蜜桃天美| 好硬好大好爽18禁免费看男男| 野花影视免费高清观看| 欧美国产成人精品二区芒果视频| 成人亚洲性情网站WWW在线观看| 无码人妻丰满熟妇啪啪网不卡| 精产国品一二三区别9977 | 中国熟妇内谢69XXXXX软件| 人妻人人添人妻人人爱| 国产成人综合一区人人| 亚洲卡1卡2乱码新区仙踪| 蜜臀av夜夜嗨一区二区粉嫩 | 国产成人精品视频ⅤA秋霞影院| 亚洲AV日韩精品久久久久久久| 久久免费99精品国产自在现线| GOGO高清大胆全人艺术| 我是你可爱的小猫| 精品视频无码一区二区三区| 777米奇色888狠狠俺去啦| 上边一面亲下边一面膜的作用| 国精产品一区一区三区M| 在厨房被C到高潮A毛片奶水| 日本熟妇人妻XXXX| 国产一区在线观看二区| 在线成人A毛片免费播放| 日本在线 | 中文| 韩国无码无遮挡在线观看| 中文字幕高清免费日韩视频在线| 日产一二三区别免费必看| 韩国免费A级作爱片视频| 亚洲中久无码永久在线观看同| 太深太粗太爽太猛了视频| 国产三级A三级三级| 在线播放国产精品三级| 久久久免费无码成人影片| WWXX在线观看免费| 无码口爆内射颜射后入| 亚洲AV无码一区二区三区久久精 | 少妇把腿扒开让我添69动态图| 14表妺好紧没带套18分钟| 日韩一区二区三区无码人妻视频| 国色天香卡一卡二乱码| 又黄又爽又色的视频| 色欲香天天天综合网站小说| 国精品无码一区二区三区在线| 亚洲一线产区二线产区区别在哪| 免费观看人成影片| 国产AⅤ无码专区亚洲AV综合网| 粉嫩粉嫩一区性色AV片| 久久精品女人天堂AV麻| 老阿姨哔哩哔哩B站肉片入口6| YY1111111少妇影院光屁| 亚洲AⅤ永久无码毛片牛牛影视| 乱码中字在线观看一二区| 国产V片在线播放免费无码| 亚洲中文久久精品无码WW16| 日韩一区二区三区无码人妻视频| 精品卡一卡2卡三卡四卡乱码 | 日产2021免费一二三四| 精品国产三级A∨在线| 被群CAO的合不拢腿H纯肉视频 | 久久久99精品免费观看| 成人夜间av大片免费观看| 亚洲一卡2卡3卡4卡精品分类| 色噜噜狠狠狠综合曰曰曰| 久久青青草原亚洲AV无码| 国产AⅤ无码专区亚洲AV综合网| 在线播放韩国A级无码片| 玩弄chinese丰满人妻| 男生把QQ放进女生的QQ里在线| 国产美女裸体无遮挡免费视频| 999国内精品永久免费观看| 亚洲AV无码成人片在线观看 | 成年免费A级毛片免费看无码| 亚洲精品无码久久久久去Q| 日韩AⅤ无码AV一区二区三区| 久久久久久精品免费免费4K| 国产成人免费A在线视频| 51国偷自产一区二区三区| 亚洲AV无码AV日韩AV网站| 日本三线和韩国三线品牌对比| 久久久精品人妻一区二区三区四| 粉嫩AV一区二区精品爆乳| 真人作爱视频免费网站| 性色AV一区二区三区天美传媒 | 成人Α片免费视频在线观看| 艳妇乳肉豪妇荡乳ⅩXXOO小说| 天干夜天干天天爽自慰| 欧美成人一区二区三区| 精品精品国产欧美在线| 国产成人AⅤ片在线观看| 97久久精品午夜一区二区| 亚洲精品国产综合久久一线| 少妇毛又多又黑一区二区| 女儿的朋友中字头| 久久99热只有频精品8| 国产成人午夜福利院| WYC忘忧草在线看WWW| 一本久久A久久精品综合| 西西人体大胆牲交视频| 日韩A片无码一区二区五区电影| 老司机在线精品视频网站| 含羞草自慰抽搐喷白浆AⅤ| 粉嫩被黑人两根粗大猛烈进出视频| 52综合精品国产二区无码| 亚洲乱码一卡二卡四卡乱码新区| 图片区小说区偷拍区日韩| 人妻中文字幕制服丝袜| 蜜桃AV噜噜一区二区三区| 精品久久久久久国产| 国产精品久久久一区二区三区| 班长哭了能不能再抠游戏里面的钱 | 一区二区三区国产好的精华液| 亚洲AV无码乱码国产麻豆| 爽一点搔一点叫大声点| 欧洲VODAFONEWIFI喷| 两个病娇男友轮流爱我资源| 极品婬荡少妇XXXX欧美| 国产精品久久一区二区三区| 处破痛哭A√18成年片免费| 999精产国品一二三产区区| 野花香在线视频免费观看第一集| 亚洲AV高潮黄色毛片| 婷婷综合久久中文字幕蜜桃三电影| 人人插人人操人人射av网| 女人脱精光让人桶爽了| 老太太BGMBGMBGM性| 久久AⅤ无码精品色午麻豆| 国产在线精品一品二区| 国产精品国三级国产AV| 丰满少妇女人A毛片视频| 菠萝蜜视频APP在线观看| GAY引诱服务生COM2O22| 95W乳液78WYW永久区域| 中国老熟妇自拍HD发布| 亚洲永久精品wW4791一区| 亚洲精品成A人在线观看| 亚洲AV之男人的天堂| 亚洲AV乱码一区二区三区林ゆな| 无码色AV一二区在线播放| 翁熄小莹女博士高潮连连|