Javascript和JavaBean的速度

Javascript vs JavaBean in speed

本文关键字:速度 JavaBean Javascript      更新时间:2023-09-26

我有一个关于JSP开发的问题。我的servlet达到了一个点,我的简单Java类不能帮助我与我的网站,Javascript接管了。问题是数据非常大,而使用Javascript则非常慢。使用Javabeans会加快速度吗?减少多少?javascript如何获取和传递值给Javabeans?Javabeans是像javascript一样动态的,还是像JSP一样在页面刷新时执行?还是我错了(我想我错了)

您正在做一件好事,并通过愿意编写复杂的服务器端部分和客户端javascript代码来实现重大进展,但是从您的问题中可以看出(对不起,如果我错了)您错过了服务器和客户端交互的要点。

首先让我们看一下整个HTTP协议,它规范了现代web应用程序的工作方式。根据HTTP架构,客户机(表示为本地机器上的浏览器应用程序)和服务器(表示为在其上运行java类的servlet容器-即tomcat/jboss/等-远程计算机)之间的所有交互都通过简单的请求(来自浏览器的问题)-响应(来自服务器的回答)循环完成。客户端通过URL请求一些信息,服务器将这些信息提供给客户端,客户端处理(读取)检索到的信息(不仅可以有图像、视频、音频、文本,还可以有javascript形式的程序代码)后,在下一个问题(http-request)中向服务器请求一些更具体的信息。当给出答案(处理请求)时,您可以在请求-响应周期之间存储中间信息,要么在客户端(在浏览器- cookie中保存不同网站的特定信息),要么在服务器端(在服务器会话、数据库、不同网站用户的服务器文件中)。希望这部分到目前为止是可以理解的。

Java完全在服务器端执行,因此任何类型的JavaBeans,无论是简单的JavaBeans(或POJO -普通的旧Java对象)还是EJB(企业Java bean -企业Java平台上提供的更复杂的解决方案)都完全在服务器端工作和生活,并且生活在会话或应用程序范围内。换句话说,用户可以通过HTTP GET/POST/PUT/DELETE方法将一些参数传递给servlet/jsp, servlet/jsp正在读取这些参数并根据从用户传递的解析数据修改bean信息。

JavaScript依次完全在客户端执行。JS可以将信息保存在浏览器cookie(或html5中引入的localstorage)中,这基本上是存储在客户端浏览器中的键值数据对,用于区分其URL的特定站点。

JavaScript仅用于在快速请求-响应交互期间保存信息,换句话说,您可以在用户关闭浏览器窗口(结束他的站点工作)后完全丢失JS存储。而服务器端信息的存储时间要长得多(大约是永久的),并且属于与站点的工作会话之间。

所以从这个角度来看,你总是可以创建一个瘦客户端(几乎没有JavaScript),它完全依赖于服务器端逻辑和java bean。但是在瘦客户机的情况下,对web应用程序的任何小操作都将花费相当长的时间,因为它需要服务器往返。换句话说,你的应用会很慢。因此,为了加速你的web应用程序,你可以将一些操作从服务器端java转移到客户端javascript,这样它们就可以用更少的服务器请求来执行。例如,假设您正在编写一个计算器web应用程序:您可以创建一个html表单,并为每个操作(+-*/)发送请求到服务器(java部分),或者您可以创建一个本地js应用程序,每个操作将由JavaScript执行,而不需要服务器端访问(在这种情况下,您的应用程序将快得多)。

我建议你阅读更多关于HTTP(以及REST——HTTP协议背后的架构)实际工作原理的信息。例如本教程