这篇文章是关于Ajax优于JSF的原因。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。我们就不多说了。让我们和边肖一起看看。
为什么孙想出了一个,为什么是这个样子?我觉得原因是:首先,基于组件的Web开发将是未来的趋势。自带组件便于IDE处理,可以提高开发效率。
也就是说,JSF优于Struts/WebWork等MVC框架,因为它可以和IDE结合自动生成代码。然而,传统的手工MVC框架影响了开发效率。因为Java技术在客户端没有明显的优势。小程序已经被抛弃,Java的优势在于服务器端。Sun不能跑去用JavaScript,因为在传统开发者眼里,JS只需要做一些琐碎的任务。
因此,在他们设计的这个架构中,所有的用户事件都在服务器端处理,这个决定造成了JSF的致命缺点。它将事件处理模型与服务器联系起来,这限制了更具响应性的交互设计。随之而来的网络延迟会破坏软件的可用性。这就是为什么Ajax不能在JSF架构中充分发挥作用的原因。
JSF的设计思路有点像VB,基于组件的开发方向是对的,以后Ajax开发也会走这条路。但是JSF和VB***的区别在于,VB的事件模型都是本地处理的。这是一个本质的区别,所以如果JSF真的想模仿VB,那也是跟风。而且,在JSF的设计阶段,同步请求/响应是主流,他们的思维仍然牢牢束缚在基于页面的开发模式上。我从来没有想过其他的可能性。
异步请求/响应是Ajax和传统开发方法的区别* * *。异步带来更好的交互设计。
在谷歌地图中,当用户滚动地图时,他们会获得新的地图图片。因为它们是异步请求的,所以不会中断用户的操作过程。在传统的地图服务中,页面可能需要在每次滚动时刷新。使用微软的地图服务可以感受到明显的差距。它甚至根本不允许用户滚动地图。
我曾经说过谷歌地图不是Ajax,因为我没有使用XMLHttpRequest。看来我的理解有点狭隘。GoogleMaps通过修改动态创建的img元素的src属性来请求地图的图片。这样的请求不会中断用户的操作,所以是异步的。在AjaxinAction中,我们看到作者把GoogleMaps看作是一个Ajax应用程序,而在实用Ajax中,作者说GoogleMaps不是严格意义上的Ajax,两者都是合理的。
事实上,如果结合小程序,JSF可能会更好。Applet是多线程的,可以捕获用户的操作事件,并异步发送到服务器。这不会中断用户的操作。然而,以这种方式设计的架构是复杂的。和Applet都是已经决定放弃的东西。JSF也可以和JavaWebStart结合,但JWS设计的是构建一种完全不同的Web应用程序,即RichClient,而不是运行在浏览器中的RIA应用程序。所以JSF最多只是一个过渡方案,在Ajax/Flash的竞争下已经失去了人气。
Ajax和Flash是未来基于浏览器的RIA开发最有前途的两种技术。
根据泽新的判断,可能有三个世界,Ajax、Flash/Flex/Laszlo和M$的Atlas。Atlas M$是一个类似Flash的技术,目前只是一个蒸发软件,并没有看到它的真正特性。相比之下,JavaWebStart只能局限于一些内部应用程序。
以上就是Ajax优于JSF的原因。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/117721.html