Javascript和JavaBean的速度
Javascript vs JavaBean in speed
我有一个关于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协议背后的架构)实际工作原理的信息。例如本教程
- Wacom stu-430签名捕获速度太慢
- 如何在速度模板中获取LiferayPortlet实例id
- 我想放慢html中进程栏的速度
- Knockout绑定大量数据的速度较慢
- Wordpress:未捕获引用错误:未定义速度
- 即使光标位于屏幕边缘,也可以跟踪鼠标速度
- Css优化谷歌页面速度洞察
- fullcalendar在删除导致浏览器挂起的多个事件时速度较慢
- 录制速度javascript
- Javascript图像数组预加载速度和从内存中删除
- 谷歌地图多边形减慢浏览器速度
- nodejs/ccurlhttp请求与postlerrest客户端相比速度较慢
- 从Three.js场景中删除许多对象的速度较慢
- 构建多个图表时,HighCharts加载数据的速度较慢
- jQuery.length()速度含义
- AMD应用程序在浏览器中的加载速度是否快于CommonJS应用程序
- 如何在不影响网站页面速度的情况下在我的网站上使用谷歌字体
- get_browser降低页面加载速度,任何其他选择
- 画布动画似乎不会以60帧/秒的速度运行
- Javascript和JavaBean的速度