文章编号:11143时间:2024-09-30人气:
JavaServer Faces (JSF) 是一个以下代码片段显示了一个具有 AJAX 行为的按钮:
```java@AjaxBehaviorRenderer(ajaxEvent="click")public void doSomething() {// AJAX 请求触发的代码}```当用户单击按钮时,此代码段中的方法将被调用。AJAX 请求将发送到服务器,服务器将响应更新部分页面。可以使用 CSS 来增强 JSF AJAX 应用程序的外观和感觉。例如,您可以使用 CSS 来设置 AJAX 请求期间显示的加载图标。以下代码片段显示了如何在 JSF AJAX 应用程序中使用 CSS 设置加载图标:
```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 应用程序的
body
元素中:
```您可以在以下位置使用 AJAX 行为时显示加载图标:```java@AjaxBehaviorRenderer(ajaxEvent="click", onstart="showLoader()", oncomplete="hideLoader()")public void doSomething() {// AJAX 请求触发的代码}private void showLoader() {document.getElementById("loading").style.display = "block";}private void hideLoader() {document.getElementById("loading").style.display = "none";}```此代码段将显示加载图标,直到 AJAX 请求完成。
通过将 JSF 与 AJAX 结合使用,您可以创建更具交互性和响应性的 Web 应用程序。通过使用 CSS 增强 JSF AJAX 应用程序的外观和感觉,您可以创建更美观和用户友好的应用程序。
我还是把三条一起发给你吧。 项目经验: Project Experience1. XX服装企业分销网络系统1. Distribution Network System for ××Clothing Enterprise 项目介绍:该系统实现了服装企业对服装分销流程的信息化支持,系统的主要功能模块有:分销商库存管理、流向单管理、统计报表管理、分销费管理、付款结帐管理、基础数据管理等。 本系统主要对企业的物流和资金流进行全面的管理和控制。 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. 总体技术:基于Jsp + Servlet+ JavaBean技术实现:分为展现层、业务逻辑层、DAO层、PO层,在DAO实现上基于OCP原则采用抽象工厂方法设计模式,DAO层直接封装JDBC数据库操作;在统计报表实现上使用Jfreechart组件,同时还使用了FileUpload上传组件及验证码生成组件等。 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. 负责工作:分销商库存管理、数据库设计The responsible work:The design of distributor stocking management and database. 心得体会:对企业分销资源管理系统的业务需求有进一步理解,树结构实现方式,JDBC操作数据库,Jfreechart组件的运用、抽象工厂设计模式实现、一些技术细节等。 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军区首长机关办公自动化系统 2. Office Automation System for Head of ×× Military Area Command 项目介绍:为了加快部队信息化建设进程,提高首长机关的日常办公效率,促进司证后装备部门之间的协调工作,**军区结合自身实际,自主研发的一套OA系统。 总体分机构管理、权限管理、公文流转、系统管理、信息交流、信息发布、知识管理、项目管理、资产管理、考勤管理、人事档案、我的工作台等模块。 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. 总体技术:基于Struts+ Spring+JBPM+ Hibernate的多层架构:展现层使用Struts来实现MVC模式,通过page-taglib实现分页,采用JSTL与自定义标签,使用Ajax技术使系统具有较好的用户体验;业务逻辑层利用Spring的IOC来维护业务对象之间的关联,利用Spring的AOP进行声明式事务管理,采用贫血Domain Object模型;持久化层使用hibernate来实现,通过DAO模式封装PO对象;将JBPM与Spring整合,实现公文流转模块;结合Freemarker模板技术实现动态表单定义模型;实现扩展的基于RBAC授权与认证模型;实现职能型的组织机构模型。 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.责任描述:参与总体需求分析与架构设计、Domain Object设计、数据库设计、SSH架构搭建及JBPM的整合;同时实现主要模块机构管理、权限管理和公文流转核心模块的设计实现 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. 心得体会:对基于SSH架构的多层应用有深入体会,对工作流引擎JBPM的流程定义、部署和多种类型流程节点使用有进一步理解,基于RBAC模式能进行授权认证模块的实现,在该项目中的许多技术细节如:ACL的设计技巧,DWR实现动态授权,DOM4J实现初始化数据注入等等。 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. 企业客户关系管理系统 Relationship Management System for Enterprises 项目介绍:本项目旨在“以客户为中心,以市场为导向”的企业经营管理模式,通过集中管理客户信息,并在市场部、销售部、服务部等间共享客户数据,从而实现企业市场营销、销售管理、客户服务和支持等经营流程信息化,达到提高客户服务效率和销售人员事务处理的效率,最终实现企业资源的有效利用,提高企业的客户服务质量与核心竞争力。 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. 总体技术:采用JSF + Spring + Ibatis + Jfreechart的技术实现:展现层JSF采用Apache的myfaces1.1.1实现包,JSF基于组件、事件和后台bean的交互来开发应用,而不再基于请求相应和标记来解决展现层问题;利用Spring来解耦合,管理依赖,将整个应用进行整合;持久化层采用轻量级的ORM解决方案ibatis;对系统中的多种报表生成采用Jfreechart技术。 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 负责工作:参与需求分析,数据库分析设计,销售管理模块实现Responsible work: Participated in the demand analysis, the analysis and design of database, and the realization of sales management module. 心得体会:对本项目背景和需求有进一步理解,项目中使用的许多技术细节,如:使用Sitemesh控制页面布局,理解Sitemesh基本原理;利用POI库操纵Excel报表(批量导入和批量导出客户数据)等等。 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)
A4J是JSF(JavaServer Faces)和Ajax技术的有机结合,其目标是将Ajax的功能无缝融入到JSF组件中,提供更便捷的用户体验。 最初,A4J独立存在,后来被JBoss收购,并与RichFaces框架相结合,进一步增强了其功能和控件库。 现在,RichFaces已经发展成为一个集成了Ajax和JSF特性的全面Web开发框架。 在RichFaces中,开发人员可以利用JSF框架的诸多优势,如生命周期管理、灵活的验证和转换机制,以及对静态和动态资源的有效管理。 A4J使得开发工作更加简化,只需按照JSF的组件规范构建页面,无需编写复杂的JavaScript代码或依赖其他库,就能实现Ajax的精髓——局部刷新,从而提升页面的响应速度和用户体验。 A4J的优势在于它能够充分利用JSF的结构性优势,使得具有Ajax支持的丰富组件和高度定制的界面设计与JSF框架紧密结合,大大简化了开发流程,提高了开发效率和代码的可维护性。
JavaServer Faces (JSF) 的体系结构基于 MVC(模型-视图-控制器)设计模式,为Java Web 用户界面开发提供了一个标准且易于管理的框架。 视图(用户界面代码)与模型(应用程序数据和逻辑)的分离使得应用程序的管理更为直观,用户与应用的交互由前端的“Faces”servlet(控制器)处理,确保了安全性和权限控制。 JSF 的生命周期中,当用户访问JSF应用程序时,Controller servlet首先准备JSF上下文,存储所有应用数据,然后引导用户访问所需的页面。 页面通常使用简单的表达式语言处理来自上下文的数据。 后续请求时,控制器会更新模型数据。 开发者可以根据需要在运行时控制整个生命周期,实现高度灵活的应用行为管理。 JSF有两个主要的实现:Sun的官方实现和Apache的MyFaces。 两者都支持JSF 2.0规范,Sun的实现可通过相关链接查阅,而MyFaces的最新版本也提供了Ajax支持的增强和扩展,包括分离请求处理生命周期、支持Ajax访问部分组件、改进的客户端和组件级验证,以及对标准HTML组件的扩展,如日期选择器、文件上传等。 此外,还提供了机制来减少数据更新问题,并简化了与持久存储的交互。
在当今世界,用户只是坐在椅子上等待着观看AJAX接下来将提供怎样的视觉盛宴,包括:一些较为显著的视觉效果和像台式机一样的互动,例如, Prototype-esque fades(原型褪色), Dojo style fisheyes(Dojo 风格的注视), the near ubiquitous drag-and-drop(无处不在的拖拉和水滴)。 而且,当然,当AJAX进行异步处理的时候,如果没有了它提供的分散我们注意力的各式动画的加载,谁又能忍受?是的,这样看来,AJAX无所不能,并且没有任何桌面的视觉效果和手势是安全的,如果它是由网站提供的。 他们对谁有好处? 这曾经是我的观点,直到我看到在苹果公司最近最新发布的Mac OS X Leopard 版本上的新搜索器。 搜索器包括一个文件浏览功能,即Cover Flow,它可以使用户通过网页预览,将文件以三维的方式展示。 它是这样一种视觉效果,这种效果十分依赖向量图形,这种效果如果仅用AJAX是很难实现的。 事实上,像Adobes Flex, Microsofts Silverlight, 以及Sun 最近发布的JavaFX这样的计算技术,使得向量图形实质上优于AJAX提供的Dojo或者Yahoo图形实验室(YUI)这种构架.无论相信与否,在网络应用程序开发中,在基于网络的向量图形的应用方面存在巨大的商机,而这绝不仅仅是看起来比较诱人这么简单。 这种需求已经被商业分析中得到的数据很好的诠释了(例如:SAP 和Oracle),就像视频重放和图片编辑软件一样(例如:YouTube和MixBook).当然,RIA交付向量图象的技术并不仅仅限于视觉领域。 基于Flex的字处理器BuzzWord通过交付一个完整的网络应用程序,提供了一个关于高清晰度RIA解决方案的生动的例子。 这个网络应用程序叫做Google Docs,它是一个基于AJAX,更加流行的网络应用程序。 因此,向量图形并不仅仅是高清RIA解决方案提出的。 类似的框架也提供丰富的设备用来开发能交付声音,sockets,本地存储,视频的应用程序,在这个领域,AJAX要落后了。 AJAX的革新结束了吗? 这是否意味着AJAX已经完成了它的比赛?一点也不,事实上,Adobe Flash和相似的技术正在和AJAX进行着竞争。 但是就现在来看,仍然有一些特定的限制使这些高清RIA框架无法取代AJAX。 在我们考虑是用高清RIA框架还是AJAX的时候,这有一些更显著的需要考虑的事情。 需要的插件:高清RIA解决方案需要浏览器插件。 在2007年三月份,在美国,加拿大,英国,德国,法国和日本,大约83.4%的个人电脑安装了Flash 9 Player.因此,可以说Flash已经无处不在了。 然而,即使是一个全球性的,最近安装的版本,升级插件是一件十分困扰的事情。 多于一半的用户,当被提示需要更新插件的时候,经常会放弃下载软件的连接,而转向其他网站(很有可能是一个计算机网站)去下载软件,为的是避免和别的用户争夺下载和安装软件。 需要注意到,无论是JavaFX, 还是Sliverlight现在都没有分享到被Adobe Flash Player占领的任何市场份额。 也应该注意到被Flash 9 占领的83.4%的市场份额,在跟现代浏览器中(例如:IE7.0,Firefox2.0,Safari3.0)支持的AJAX比起来,就显得黯然失色了。 缺少开放标准:AJAX,并不像高清RIA 解决方案,它是建立在开放标准上的,例如(X)HTML,CSS和JavaScript. HD RIA一直以来,都不是开源的,标准比起来少的可怜。 JavaFX,一开始就是被当作一种开源的成果介绍的。 在这个时候,在改变HD RIA 解决方案的的进程中,像一个领导者一样。 但是它到现在为止却很少改变。 技能的缺乏:Flex,silverlight,和JavaFX分别介绍了自己的代表性语言。 另一方面,AJAX依赖的是JavaScript。 JavaScript是被广泛认知的,而且很容易和其他主流的技术相结合,例如:Ruby-on-Rails, PHP, Java, and . 不能在HTML中很好的显示:对于完全用Flex开发的应用程序,并不存在这样的问题。 但是对于已经存在的应用程序,它就是一个值得考虑的问题了。 AJAX和JavaScript的创造是用来补充HTML的。 另一方面,Flash在运行时,在操作已经存在的网页结构时,缺少灵活性,而这是JavaScript DOM 对象提供的。 大量下载印记:基于Flash的RIA解决方案跟依赖本地AJAX支持的解决方案比,趋向于有一个更大的下载印记。 这种更大下载的结果时,在应用程序安装的时候,有一个延迟的等待。 可查找的,但并不是总能被找到:近年来,搜索引擎在他们各自的网页抓取中,引入了检索swf 文件的能力。 Yahoo和Google是这种文件格式的最好的广告宣传提供商,虽然使用的方法(检索swf文件的方法)并没有广泛的公布,也没有很好的理解。 为了优化查找结果,网络设计者经常既建一个flash网站,又建一个传统的HTML网站。 或者在一个传统的HTML网站中选择一个嵌入的flash电影,作为对文本内容的装饰。 应该注意到,在写这篇文章的时候,我并不能知道搜索引擎会在何时,会用何种方式把这个问题加入到HD RIA 技术中,就像JavaFX和Silverlight一样。 并不是所有的客户都是平等的:随着更新的个人电脑的使用,这已经不在是一个问题了。 但是自从HD RIA 环境大量使用用户的资源用来执行业务逻辑,应用性能由客户机的配置来决定了。 因此,客户体验会因为机器配置的不同而不同。 基于AJAX的解决方案有一个继承过来的服务端组件,(例如:Oracle ADF Faces Rich Client),可以利用服务器资源来装载处理和表现以保证在客户端更统一的交付。 读者应该注意,没有一种列出的考虑会阻止你选择flash或者相似的产品,而去选择AJAX。 AJAX的确有它自己的缺点,有很多。 在近些年,比HD RIA 解决方案显示出的问题多很多。 让我们关心的,一些显著的问题包括速度很慢的JavaScript执行,内存泄露,大量的浏览器错误,两个连接的限制,和CSS产生的问题。 简单的输入,在Google Maps或者Gmail上用AJAX创建一个应用,你就不能拒绝任何形式的攻击。 进一步讲,这篇文章已经指出了在哪种情况下,HD RIA 解决方案做的比基于AJAX的解决方案做的好,尤其是在向量图形的领域。 但是,在这个平衡的另一端,我们会显然的发现AJAX更适合增量的修改已经存在的应用程序,在这一点上,flash或者其他HD RIA解决方案做的没有AJAX好。 并且AJAX更适合处理文本内容。 而文本内容又是当今网络内容的主流,虽然更多的媒体中心,实时驱动的web3.0可能会使规模在不远的将来,达到一个更高的级别。 因此,现在所有RIA解决方案都是有限制的。 幸运的,AJAX和HD RIA的限制因素,在大多数情况下,运行起来并不会产生相互影响。 因此,AJAX和Flash这样的技术实际上很好的互补了,并且,像YouTube和SlideShare已经证明了,AJAX和Flash可以结合起来用来创建一个健壮的应用程序可以提供丰富的媒体和动态的文本.但是,这又引入了一个新的难题,那就是并不是所有的开发者都被平等的创建了,这将导致一个问题,就是是否这个混合的RIA解决方案只能通过极端的方式来达到? 两个世界中最好的,但并不是免费的: 最终的测试的结果是积极的。 Adobe实验室最近提供了一个Flex-AJAX桥,允许开发者用JavaScript来操纵一个Flex的应用程序。 进一步的,Sliverlight DOM可以通过JavaScript来访问。 因此,HD RIA解决方案已经提供了AJAX的整合点。 然而,尽管有整合到一起的接口,仍然有其他的复杂的问题没有显现出来,也就是找到一个有经验的开发者的难题,这样的开发者需要有flash,(或者Sliverlight,JavaFX),CSS,HTML, Javascript, 有一些PHP,Ruby-on-Rails, 或者 Java.的知识。 进一步讲,开发者的技能一般都是针对客户方法和服务方法分开的。 或者精通flash,或者AJAX,但是不精通服务端的技术。 相反的说,也成立。 因此,你需要雇一个精通flash的人和一个精通AJAX的人,而不仅仅是他们其中的任何一个。 这会使你在雇佣人员上的花费翻倍。 最后,基本上是没有开发工具的,比把所有技术都集成到一个程序开发环境中的,端到端的开发框架要少得多。 理想情况下,这样的开发环境会包括可视化开发和其他加速编程速度的方法,更进一步,会包括宣布数据隐藏的工具。 因此,这就好象是,在试图平衡flash和AJAX的工程中,技能和工具所提供的生产力并不是足够的。 AJAX和Flash,最终将结合到一起 在2004年,JavaServer Faces (JSF) 开始采用十分激烈的方式,简化网络开发并且在一些提供商的帮助下,仿佛成为了期待再一次重振网络开发的标准。 JSF是一个服务器端的组件框架,这个框架允许开发者用一个单一接口去构建一个基于网络的,能操作多个设备的应用程序。 能这样开发的一个主要方面是因为有一个可以高度灵活性表现引擎或者一个更加专业的表现包。 像Oracle ADF Faces 这样的构件框架引入了表现包,不仅仅表现HTML浏览器,智能客户端,WML浏览器,和ASK客户端,创建用来交付的多通道而不用去理解内在技术的细微差别。 你可以很容易的发现这项技术是如何扩展到AJAX和Flash中去的。 创建一组组件的想法适用于AJAX,同时也适用于Flash.在这个想法中AJAX用来交付增强的窗口,布局管理器,和数据表格。 与此同时,基于Flash的组件服务于更多特定的目的,利于画图,画图表,和其他的数据可视化需求。 在开发中使用单一的借口消除了理解JavaScript, (X)HTML, CSS, XML, JSON, and Flash(或者其他RIA解决方案)的需要。 开发者仅需要简单的知道java的语义和JSF的接口。 再者,深入理解的需要减少了,因为大量的工具和为JSF提供的可视化设计(例如:Oracle JDeveloper, NetBeans, Eclipse)。 成果是一个开发环境,在这个开发环境下,即使水平相差很多的开发者,都可以创造和交付一个高交互式的RIA。 然而,尽管有很多工具可以选择,却很少有JSF组件提供商,在一个单一的框架中,既提供基于Flash组件,又提供基于AJAX的组件。 一些更著名的JSF组件提供商发布基于AJAX的组件,包括:Backbase, ICEsoft, Oracle, JBoss,和ILOG。 目前,Oracle ADF Faces Rich Client 代表了唯一的一个既提供支持AJAX的,又支持Flash的组件。 而且,为了消除任何概念的所有权干涉,Oracle近日在今年的JavaOne上宣布,Oracle ADF Faces Rich Client对Apache Foundation的贡献,被当作是Rich Client Framework(RCF)。
Swing 能否经受住富互联网应用程序宣传热潮的考验?2006 年 3 月发布J2EE Web 技术已经从一个静态的内容提供环境迅速发展为一个在内联网和互联网上运行的动态业务应用程序的可靠平台。 Web 的前景体现在,无论您的业务需求如何,浏览器都将是您未来唯一需要的客户端。 在这种趋势的推动下,最近掀起了新一轮围绕高度交互的 Web 界面(基于一组称作 AJAX 的技术)的宣传热潮。 AJAX 与新 J2EE 标准 JavaServer Faces (JSF) 的结合使用在处理 Web 应用程序方面有望提供更好的最终用户体验和认可。 AJAX(异步 Javascript+XML 的缩写)描述了一组现有技术(如 JavaScript、XML 和文档对象模型 (DOM))的使用模式。 不可否认的是,AJAX 和 JavaServer Faces 来势迅猛,并将很快挡住 Swing 的去路,而 Swing 自 1998 年以来一直是用 Java 构建丰富用户界面的标准方法。 浏览器将在未来唱主角?Swing 能否经受住富互联网应用程序宣传热潮的考验?本文针对 Swing 和 JavaServer Faces 进行了介绍、定位和比较,以帮助开发人员决定对某种作业使用哪种技术。 此外,本文还介绍了 Oracle 应用程序开发框架 (ADF) 如何有助于简化使用这两种技术进行的应用程序开发。 从Java 到 Swing 再到 JavaServer Faces应用程序开发史中曾出现过许多编程语言。 早在 1991 年,James Gosling 发明了“Oak”,即 Java 的前身。 由于 Oak 无法出售,因此 Sun 于 1995 年推出了 Web 编程语言 - Java,此后不久 Java Applet 即成为 Web 应用程序开发的这个“石器时代”的主导技术。 1998 年发布了用于开发轻型 Java Web GUI 和客户端桌面应用程序的 Java Swing 平台。 一年以后,Sun 推出了 Java 2 企业版 (J2EE) 平台,该平台在 6 年后引入了 JavaServer Faces。 Swing 本身是一个基于抽象窗口工具包 (AWT) 和 Java 基础类 (JFC) 构建的轻型组件集。 从推出到现在的七年多时间里,Swing 程序包已经成为 J2SE 中一个非常成熟的 Java 库,并广泛用在企业级业务应用程序的构建中。 Swing 以灵活而强大的开发环境著称,它为应用程序开发人员提供了大量的控制权。 毫不夸张地说,只要是可以用 Java 构思的应用程序,就可以用 Swing 构建它。 但 Swing 的灵活增加了复杂度和学习难度。 类似 Oracle JDeveloper、NetBeans 和 IntelliJ 这样的 Java IDE 为 Swing 提供了可视的 4GL 编辑环境,有助于开发人员快速入门并执行更深层次的操作,而不必深入学习 Swing。 2004 年 3 月推出的 JavaServer Faces(也称作 JSF,或简称为“Faces”)是一个用于构建 Web 应用程序的基于组件的框架,该框架并入了 JavaBean 事件模型,用于将信息发送到其他组件。 作为 J2EE Web 技术的发展,JavaServer Faces 将基于模板的编程式 Web 开发与 4GL 类型的开发选项结合在一起。 J2SE Swing 体系结构尽管Swing 是 Java 标准版 (Java SE) 的正式部分,但它并不是核心 Java 语言的成员,而是被视为一个标准扩展。 以 而非 开头的 Swing 程序包名称也反映了这一点。 使用 Swing 开发的应用程序在 Java 运行时环境 (JRE) 中执行,该环境可以安装在本地桌面客户端中,也可以集成到 Java Web Start 或 Web 浏览器中。 所有Swing UI 组件均为 JavaBean,并采用对象模型控制器体系结构,将数据表示与对数据的操作分离。 该模型不包含任何 UI 特定的代码,反之亦然。 模型与 UI 之间的所有信息交换均通过 JavaBean 事件和监听器进行。 这种职责划分使经验丰富的 Swing 开发人员能够自定义组件 UI,而不必更改组件行为。 Swing 中的组件控制器和视图称作 UI 代理。 控制器将用户交互指派给模型,并由模型保存组件的状态。 图1:Swing 体系结构 Swing 中的 UI 组件可在运行时通过属性方法或在设计时通过可视编辑器以编程方式进行控制。 并非 Swing 中的所有组件均绑定到数据,某些组件(如按钮)只需要处理 GUI 状态。 UI 组件中的事件通过注册的 JavaBean 监听器(如 MouseListener、FocusListener 或 ChangeListener)进行检测。 ADF 与 SwingSwing 始终存在的难题之一是如何将组件绑定到动态数据。 过去,有许多不同框架已经通过非标准方法多次解决了这一难题。 而作为 JSR-227(用于解决此数据绑定难题的建议标准)早期采用者的 ADF 以及 ADF Swing 采用标准方法将 Swing 应用程序绑定到所有业务服务,如 Enterprise JavaBeans、TopLink、Web 服务、ADF 业务组件以及 URL。 ADF Swing 是一个将 Swing 域模型绑定到 Oracle ADF 绑定的小型 Java 层。 ADF Swing 开发人员采用声明方式将组件模型设置为 ADF 绑定中的有名引用。 ADF 中的数据控件将一致的客户端开发 API 公开给不同的业务服务,以便 Swing 开发人员使用。 数据控件采用标准方法来创建、删除和插入数据,并采用标准控件来导航数据集。 ADF 绑定将一个可以从数据控件访问的较小的数据子集公开给 Swing 应用程序面板或框架。 Swing 开发人员无需了解应用程序构建所基于的业务服务,这是因为他们不再处理特定的模型 API。 同样,他们并不负责资源查找或类似任务。 所有这些任务均由 JSR-227 实现处理,该实现提供了一个有效的控制反转机制。 由于ADF Swing 应用程序开发在很大程度上是一个使用 ADF 执行的声明任务,因此它缩短了新手和 Java 专家的应用程序开发周期。 例如,UI 第一绑定使项目团队可以轻松地进行快速原型设计。 可以采用概念验证的方式创建 UI 的非绑定版本,然后采用回溯方式将其绑定到服务。 图2:ADF Swing 体系结构 JavaServer FacesJavaServer Faces 是 Web 应用程序开发中的一个里程碑,它将成为 J2EE 5.0(SUN 最近将其重新命名为 JEE 5.0)中核心 Java 企业版平台的一部分。 JavaServer Faces 可以作为独立的 Servlet 在 J2EE1.4 应用服务器中使用。 Web 并非为需要事务和状态处理的业务应用程序而设计。 多年来,开发人员花费了大量时间使用各种技术(如隐藏的 HTML 域、cookie、URL 或会话参数)来跟踪 Web 应用程序的状态,而这样做仅仅为了克服 HTTP 协议无状态这个问题。 JavaServer Faces 有助于开发人员重新关注应用程序的业务要求,而不再关注基础的交付技术。 JavaServer Faces 是一个 UI 框架,它对应用程序开发人员隐藏了 HTTP 请求 – 响应循环的细节。 与Swing 中的 JavaBean 体系结构相似,JavaServer Faces 使用通过属性公开状态和行为的 UI 组件来构建 Web 界面。 尽管 JavaServer Faces 页面通常汇集在 JSP 文件中,但这并不是必需的。 JSF 这项技术并非只可用于基于浏览器的应用程序,同时也可用于构建移动应用程序。 JavaServer Faces 中的 UI 组件是显示不可知的。 这意味着应用程序开发人员并不构建针对特定设备的应用程序,而是构建可以在许多设备上运行的应用程序。 JSF 中的 UI 组件呈现器类(打包的呈现器集的一部分)决定 UI 的可视化表示。 如果初始应用程序请求来自 Web 浏览器,则该表示采用 HTML 格式,否则应用程序将按照请求客户端设备所支持的方式呈现(假设该设备类型存在一组呈现器类)。 类似文本域这样的 UI 组件通过 ExpressionLanguage (EL) 值绑定绑定到 (JSF) 管理的 bean 模型上。 在值绑定中,EL 用于引用辅助 bean 中的 setter 和 getter 方法对。 例如,EL 表达式 #{} 将 JSF 组件绑定到用户 bean 中的 setFirstname 和 getFirstname 方法上。 EL 绑定另一个可能的形式是方法绑定。 方法绑定引用受管理 bean 中的方法,并在 JSF 中(就像在按钮中一样)用于将操作属性绑定到视图层逻辑,以便在复杂导航情形下或者在需要导航前和导航后处理的情况下执行。 图3:JavaServer Faces 体系结构 受管理 bean 的另一个角色是将 UI 组件绑定到域数据,例如访问 JDBC 查询的结果集或查找 Enterprise JavaBean (EJB) 会话。 此外,页面上的 UI 组件可能在辅助 bean 中包含一个用于以编程方式访问的表示。 Oracle 应用程序开发框架 (ADF) 和 JavaServer FacesOracle JDeveloper 10.1.3 支持通过可视编辑器进行 JavaServer Faces 开发。 此外,Oracle ADF 可用于通过声明方式将 JavaServer Faces 和 ADF Faces 组件绑定到业务服务数据。 正如在 Swing 的上下文中介绍 Oracle ADF 时所指出的,使用 Oracle ADF 绑定为 JavaServer Faces Web 应用程序开发人员提供了一个统一的开发 API,用于访问 Web 服务、Enterprise Java Bean、TopLink、POJO、ADF 业务组件以及其他类型的业务服务。 ADF Faces 是一组基于 JavaServer Faces API 构建并可以部署到任何 JSF 实现(如由 Sun 或 Apache MyFaces 提供的参考实现)的 100 多个 JSF UI 组件的总称。 除了适用于浏览器客户端的 HTML 呈现器工具包以外,ADF Faces 还为在 telnet 客户端、移动设备和 PDA 上显示的 Web 应用程序提供了呈现器,并支持作为显示不可知 Web 应用程序开发环境的 JavaServer Faces 的强大功能。 为将ADF 与 JavaServer Faces 应用程序集成,表达式语言值绑定访问 ADF 绑定对象,而非辅助 bean 中的数据。 ADF 绑定对象(默认情况下名为“bindings”)由 ADF servlet 在应用程序初始化过程中创建,并使开发人员能够访问通过 ADF 数据控件和绑定层公开的所有集合和方法。 要以编程方式引用和使用辅助 bean 中的 ADF 绑定对象,可以通过 faces 配置中的 ExpressionLanguage 表达式 #{bindings} 访问绑定对象并将其作为受管理属性的值注入到辅助 bean 中。 图4:使用 ADF 的 JavaServer Faces 体系结构 履行富互联网应用程序的诺言:AJAX 和 ADF Faces对于并非熟悉 Javascript、XML 或文档对象模型 (DOM) 等 Web 技术的开发人员而言,AJAX 易于理解但却难于实现。 对于业务应用程序而言,仅当在 JavaServer Faces 这样的 Web 应用程序框架中以“现成方式”在组件中使用时,AJAX 才有意义。 ADF Faces 提供了部分页面呈现和对话框支持,使开发人员能够构建更好的 Web 客户端。 作为一个早期实现的 AJAX,部分页面呈现缩短了客户端的响应时间,因为它减小了只需刷新页面的某些部分的网页的下载大小。 ADF Faces 的未来发展方向是提供一组利用 AJAX 的富互联网组件,以便 Web 应用程序开发人员能够构建响应性和交互性较高的 Web 客户端,而不必编写 JavaScript 或 DHTML 代码。 在 JavaOne 2005 召开期间首次展示了 ADF Faces 富互联网应用程序客户端的预览版本。 在什么场合使用什么技术? 当决定对新应用程序开发使用哪种技术时,应用程序的要求(而非各种技术的功能)是一个不错的指标。 以下是对两种技术的简要分类比较 开发:主要的 Java IDE 支持对 Swing 和 JavaServer Faces 进行可视开发。 开发 JavaServer Faces 应用程序时,开发人员可以获得很多好处而不必编写 Java 代码。 组件:Swing 和 JavaServer Faces 均基于组件,并将 JavaBeans 用于其 UI 组件。 还可以创建在应用程序中使用的自定义组件。 页面和布局:Swing 中的布局通过嵌套 Swing 面板定义。 Swing 组件的位置及其调整大小的行为通过 LayoutManagers 确定。 同样,在 JavaServer Faces 中,布局通过容器(如 ADF Faces 中的 PanelPage 和 PanelBox)定义。 每个容器可以有很多个子组件,而其中的每个子组件本身也是容器。 尽管使用 HTML 表格安排 JSF 应用程序的布局可能比较吸引人,但在处理 JSF 应用程序时建议您不要混合使用多技术。 UI 响应性:AJAX 更适合于 Web 应用程序,它可以根据提供的输入或模型层中引发的事件向用户立即提供反馈。 Swing 用户界面具有高响应性,并可以刷新屏幕上的特定区域而不用刷新整个屏幕。 例如,股票应用程序可以向 Swing 应用程序发送有关已更改值的信息,无需重新查询即可将该信息显示给用户。 更新、插入和删除:Web 模型基于 HTTP 协议,该协议并非为事务应用程序和动态业务应用程序而设计。 JavaServer Faces 自动处理 Web 开发人员以往所面临的大量问题,但在处理多行更新方面,有时仍需要开发人员亲自操作。 而在 Swing 中,多行操作对于应用程序开发人员(如使用 ADF Swing 的开发人员)而言比较简单。 外观: Swing 支持动态外观类,这些类在应用程序启动时向其应用特定颜色方案。 更改应用程序外观不需要更改应用程序代码。 JavaServer Faces 使用样式表显示不同的用户外观。 此外,Oracle ADF Faces 还提供了一个称作“换肤”的特性,其作用与 Swing 中的外观类相似。 国际化:这两种技术均支持使用资源包进行字符串翻译。 JavaServer Faces 包含客户端上的浏览器设置中的首选用户语言,而 Swing 应用程序根据 Java 运行时环境中的区域设置确定语言。 JavaServer Faces 和 Swing 均可以编程方式设置语言,以便应用程序用户可以从应用程序中选择一种翻译。 事件模型:JavaServer Faces 和 Swing 组件均使用 JavaBean 事件模型发布有关模型或组件更改的信息。 相关各方可以使用 JavaBean 监听器注册事件,如值更改事件、属性更改事件或阶段事件。 键盘快捷方式:尽管这两种技术均支持键盘快捷方式,但由于 Swing 并不依赖于浏览器,因此在这方面优势比较明显。 所有键盘功能均由 Swing 处理并可以由应用程序开发人员控制。 桌面集成:安装到本地的 Swing 应用程序拥有客户端桌面的完全访问权限。 JavaServer Faces 通过上载和下载文件只提供有限的桌面集成。 导航:Swing 只具有编程式导航功能,而不存在为 Swing 标准(定义应根据操作输出显示哪个面板)定义的外部控制器。 JavaServer Faces 使用一个控制器组件,可以根据计算输出使用指定的导航示例对其进行配置。 导航可以定义为操作组件的静态字符串,而对于更复杂的导航,则可以用 Java 表示。 应用程序控制:与导航相关,相对于在 JavaServer Faces 中而言,应用程序开发人员可以更好地控制客户端中的 Swing 应用程序。 用户在 Java 运行时环境中运行 Swing 应用程序,而这并不会因为(例如)工具栏不是应用程序本身的一部分而引起冲突。 在浏览器中运行的 JavaServer Faces 应用程序总要求开发人员解决已知的浏览器限制。 如今,没有使应用程序开发人员能够关闭不需要的浏览器行为或功能(如浏览器后退按钮或浏览器保留的键盘快捷方式)的通用浏览器标准和一组通用 API。 性能:对于执行数据密集型操作的应用程序而言,JavaServer Faces 的性能似乎要高于 Swing,这是因为它只显示对客户端的更改。 使用 AJAX,所需的下载大小将变得更小,从而性能将得到进一步的提高。 尽管 Swing 可以使用远程服务器上部署的业务逻辑,但这需要使用远程方法调用 (RMI),该调用的性能要低于 JavaServer Faces 模型。 但应始终针对单个应用程序来分析网络性能,并应在可能的用户界面中考虑应用程序的要求。 安全性:JavaServer Faces 集成了声明式 J2EE 安全性,从而易于保护 Web 应用程序以及与一次性登录集成。 Swing 更难于保护,且将基于 J2SE 权限的安全性与需要更多专业技能的 Java 验证和授权服务 (JAAS) 结合使用。 部署:JavaServer Faces 部署到 J2EE 容器并从 Web 中进行访问。 该部署的体系结构既可以是两层的(其中的业务逻辑层与视图层位于同一服务器上)也可以是三层的。 Swing 通常部署到本地客户端上,或通过 JavaWeb Start(J2SE 中一个基于服务器的软件管理选件)进行部署。 对于 JavaServer Faces 而言,使用 Oracle Application Server Control 或相似的管理控制台可以使部署变得更简单、更易于管理。 综上所述,如果应用程序要求对用户输入或更改用户显示的事件立即做出响应,则 应使用 Swing。 这对在一个屏幕上显示多个主/从相关性的复杂用户界面也是如此。 此外,与 Web 相比,Swing 还可以为需要执行即时项目验证的应用程序(可能基于复杂的逻辑)提供更好的支持。 使用 Swing 的另一个重要原因是需要不仅能文件上载和下载的桌面集成。 此类集成的例子有本地打印机访问、对电话或扫描仪等外部设备的访问。 此外,与 Web 技术(其中封闭浏览器使用某些键盘组合)相比,Swing 可以为需要定义其自身的键盘映射的应用程序提供更好的服务。 在构建 Swing 应用程序时,其他浏览器功能(如可能妨碍业务控制的应用程序导航的浏览器后退按钮)不会成为问题。 某些业务要求应用程序脱机运行(即与网络断开连接),您可以根据此要求来构建 Swing 应用程序。 最后,Swing 应用程序只使用一种语言开发,而 JavaServer Faces 混合使用 Java、XML 和 ExpressionLanguage 等技术。 如果需要可以从任何位置(不要求安装客户端)访问应用程序,则 应使用 JavaServer Faces。 这包括可能为 PDA、移动电话和 telnet 客户端等显示设备提供的支持。 与 Swing 不同,JavaServer Faces 可以通过防火墙(使用 HTTP 或 HTTPS 来保护客户端-服务器通信)进行轻松的运行。 由于逻辑在服务器上执行,因此 JavaServer Faces 更易于部署并需要更少的客户端资源。 如今,互联网应用程序已得到普遍使用,因此您可以假设应用程序用户熟悉 Web 应用程序的外观和使用。 这降低了用户在使用新应用程序时的学习难度。 安全性是使用基于 Web 的 JavaServer Faces 应用程序的另一个重要原因。 尽管可以使用 JAAS 构建安全的 Swing 应用程序,但构建与服务器上容器管理的安全性和一次性登录集成的基于 Web 的应用程序则更为简单。 此外,与在 Swing 中相比,在 JSF 中更容易实现需要将其中的身份发送到其他组件或应用程序的安全性集成。 但您应该知道的是,将 JSF 与 AJAX 结合使用是基于 Javascript(需要浏览器支持)的。 将来,Swing 技术如今具有的优点将逐渐消失。 例如在美国,宾西法尼亚和旧金山两座城市已经启动了一些在整个城市提供无线访问的项目。 一旦世界上的其他国家/地区采用了该模型,那么在断开连接模式下工作(Swing 当前的优点)将不再必要。 有关 Swing 逐渐失去优势的另一个例子是 AJAX 有望为 Web 应用程序带来的即时客户端显示响应这一优点。 有选择的生产效率:是否只须学习一种技术? 成功开发 J2EE 应用程序需要 J2EE 框架和 Java IDE,它们尽量对应用程序开发人员隐藏复杂性,同时还实施了最佳的编码实践。 一项互联网工作招聘快速调查显示,Web 应用程序开发人员的就业市场远远大于 Swing 应用程序开发人员。 因此,在理想情况下您需要学习的一门技术是 Web 应用程序开发,其中包括 JavaServer Faces、AJAX 和 JavaServer Pages。 在需要开发 Swing 应用程序时,如果将 Oracle 应用程序开发框架和 Oracle JDeveloper 与 Swing 结合使用,则 Web 应用程序开发技术就足够了。 Oracle JDeveloper 是一个支持 J2EE 桌面和 Web 应用程序的集成 Java IDE。 使用 Oracle 应用程序开发框架,应用程序开发人员无须再学习如何使用不同的 API 来访问各种持久层技术,使用一个一致的 API 就可以了。 使用Oracle ADF,Web 应用程序开发人员可以在设计时和运行时使用与 Swing 应用程序开发人员构建 Java 桌面应用程序所使用的同一组元数据文件。 由于提供了相似的开发环境,因此 Swing 应用程序开发人员将发现开发 Web 应用程序其实比较简单,反之亦然。 因此,如果您必须只学习一种技术,则建议您最好学习如何使用 Oracle 应用程序开发框架开发 Web 应用程序。 总结JavaServer Faces 与 AJAX 的发展过程就像人类学习走路一样,是一个渐进的过程。 Web 应用程序最初以静态界面形式出现,现在已经逐步演变为一个动态应用程序平台。 AJAX 只不过是需要在其最具有意义的环境 - JSF 中实现的下一个逻辑步骤。 拥有富互联网客户端使开发人员可以选择使用适当的技术解决问题。 富互联网应用程序 (AJAX)基于组件的 Web 客户端 (JSF)基于动态标记的 Web 客户端 (JSP)桌面集成客户端 (Swing)AJAX 阐述了一种使 J2EE 应用程序开发人员能够将复杂的业务应用程序发布到 Web 的可能。 作为 Swing 开发人员,您不必在意围绕 AJAX 展开的宣传热潮,但应在意它的动机。 宣传是为了推广新机会,而这正体现了 JavaServer Faces 和 AJAX 的本质:为应用程序开发人员构建富 Web 应用程序提供新机会。 Swing 是为客户端桌面开发 Java 应用程序的标准方法,并且它要解决的开发问题与 JavaServer Faces 和 AJAX 不同。 它通过 Community Process 以及 Sun(它还领导了 Java 桌面网络组件 (JDNC) 项目)的努力得到不断发展和改进。 尽管Swing 与 JavaServer Faces/AJAX 在功能上存在重叠,但两者并不直接竞争。 为某项工作选择的技术必须解决您要解决的问题,而反之则不然。 使用 Oracle 应用程序开发框架,开发人员可以灵活地选择相应的技术,以便使用一种基础技术集开发 Web 应用程序和桌面应用程序。 Frank Nimphius 和Duncan Mills 是Oracle 开发人员工具部门的产品经理,两人均为 Oracle ACE。
内容声明:
1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/f2a231afe22ebe4340a3.html,复制请保留版权链接!
简介sethc.exe是Windows操作系统中一个低调而强大的工具,通常被称为,粘滞键实用程序,它最初旨在为那些有身体残疾、需要使用粘滞键功能的人提供帮助,但它还拥有超越辅助功能的广泛用途,使其成为网络安全专业人士、系统管理员和好奇用户的宝贵工具,sethc.exe的功能作为粘滞键实用程序,sethc.exe允许用户通过按五次Sh...。
最新资讯 2024-09-30 17:11:41
本文将分步指导如何在Tomcat环境中配置环境变量,以便在发布JavaWeb应用程序时指定特定配置,发布JavaWeb应用程序的默认目录在Tomcat环境中,JavaWeb应用程序通常发布在以下目录中,webapps该目录位于Tomcat安装目录的根目录下,配置环境变量要配置环境变量,请执行以下步骤,1.修改server.xml文件...。
本站公告 2024-09-28 18:51:04
在计算机图形学中,矩形是一个基本且重要的图形元素,FillSolidRect函数是GDI,中用于绘制实心矩形的函数,它是一个强大的工具,可用于创建各种形状和效果,FillSolidRect函数简介FillSolidRect函数的原型如下,voidFillSolidRect,Graphics^graphics,Brush^brush,i...。
最新资讯 2024-09-27 13:58:34
引言在面向对象编程,OOP,中,实例变量扮演着至关重要的角色,它们赋予对象灵活性、可扩展性和可定制性,本文将探讨实例变量的魔法,展示它们如何使对象能够以动态的方式存储和处理数据,并轻松适应不断变化的需求,什么是实例变量,实例变量是与特定对象关联的数据成员,它们存储有关该对象状态的特定信息,如姓名、年龄或位置,与类变量,与整个类关联,不...。
技术教程 2024-09-25 04:09:10
作为JavaScript开发人员,在处理Web浏览器的导航时,有必要掌握window.history.back,方法,它允许您控制浏览器历史记录,为用户提供无缝的浏览体验,本文将深入探讨window.history.back,的强大功能,并提供实际示例来说明它的用法,window.history.back,简介window.hi...。
最新资讯 2024-09-24 22:36:57
概述抑郁症是一种常见的心理健康状况,其特征是持续的情绪低落、丧失兴趣或愉悦感,它是世界上首要致残因素之一,影响着全球超过2.8亿人,症状抑郁症的症状可能因人而异,但常见症状包括,持续的情绪低落或悲伤丧失兴趣或愉悦感疲劳或精力不足食欲和睡眠模式的变化注意力和集中力困难自卑感或内疚感自杀念头或行为原因抑郁症的确切原因尚不清楚,但被认为是由...。
最新资讯 2024-09-24 19:28:29
简介掌握SQL编程的高级技巧对于数据分析师、数据科学家和开发人员至关重要,通过了解复杂的查询技术和优化策略,您可以最大限度地提高查询性能、提取有价值的见解并解决复杂的数据问题,复杂的查询技术递归查询递归查询允许在单一查询中多次引用同一表,这对于处理层次数据或计算累积聚合非常有用,例如,查找所有子类别的ID和名称,sqlWITHRECU...。
技术教程 2024-09-16 05:29:17
识别未使用的或低效的索引,移除或重建未使用的索引可以改善性能,示例考虑一个包含客户记录的表,客户表中最常查询的列是客户ID和姓名,为了优化查询,我们可以创建以下索引,CREATEINDEXIX,Customer,IDONCustomers,Customer,ID,CREATEINDEXIX,Customer,NameONCustom...。
最新资讯 2024-09-14 14:15:28
会,8.设定切合实际的目标设定切合实际的目标对于培养孩子的独立性至关重要,避免设定太高的目标,因为这可能会导致沮丧和挫败感,从小处着手,随着他们能力的提高逐步提升难度,这有助于他们建立信心并保持动力,9.表扬成功当孩子独立解决问题时,要表扬他们的努力和成功,这有助于他们维持动力并强化这种行为,避免物质奖励,而是专注于他们的成就感和内心...。
互联网资讯 2024-09-14 13:52:35
十步仙缘起点中文网倾情奉献,为您带来最全面的PHP学习指南,助您从零基础迈向PHP精通!第一章,初识PHP什么是PHPPHP的特点PHP的安装与配置第二章,变量与常量变量的定义与使用变量的数据类型常量的定义与使用第三章,运算符与表达式算术运算符比较运算符逻辑运算符表达式第四章,条件语句if语句switch语句三元运算符第五章,循环语句...。
技术教程 2024-09-09 09:42:00
在当今快节奏的数字世界中,网站和应用程序的性能至关重要,用户期望快速加载和响应迅速的应用程序,而缓慢的性能会对用户体验产生负面影响,甚至导致收入损失,对于PHP应用程序来说,优化性能至关重要,因为PHP是一种解释性语言,可能比编译语言如C,慢,本文将提供一系列经过验证的优化技术,帮助您提升PHP应用程序的性能,优化代码1.缓存使用o...。
最新资讯 2024-09-08 19:26:28
StackOverflow是一个问答网站,致力于解决计算机编程方面的问题,它成立于2008年,现已成为全球最大的编程社区之一,中文官网StackOverflow中文官网于2012年推出,致力于为中国开发者提供一个交流和学习的平台,中文官网由StackOverflow官方团队运营,提供与英文官网相同的功能,包括问题提问、回答、投票和评论...。
最新资讯 2024-09-05 13:07:59