纯Html+Ajax和JSP两者对比的个人理解
最近写个人web,用jsp+servlet做,突然想到一个问题:html+ajax似乎和jsp实现效果一样;那么,两者到底有什么区别呢?
这里参考老猿的一段话:
全站ajax会维护大量的js代码,如何管理好这些js需要考虑。js的技术选型也需要考虑。我当时是require+backbone+underscore+jquery等。效果上,页面流畅度不错,体验也不错。作为后端来说,只需提供数据接口,前端压力较大。前端没有什么规范可遵循。
传统后端渲染比较直接一点,大部分的框架都有现成的机制和规范,开发速度比较快。用户体验上不如ajax来的流畅。因为有规范化的体系,管理后端代码比管理前端代码更容易。
对此,我非常认同。有些人表示,尽可能项目不用jsp,完全使用html+ajax,完全不用JSP或者任何的模版在一个大点的项目里都有些极端。
毕竟很多数据在后端生成比前端AJAX访问效率更高。AJAX做一些交互的通信,局部刷新更合适。
具体问题 :Ajax在什么情况下不如jsp,php? 在返回查询的实时性上,ajax不如jsp.php.asp等动态语言。
ajax的显示效果确实是比jsp好,因为它实现的是无刷新技术,可以不用刷新、跳转网页就可以查询、返回数据,但实时性不太好控制。
非ajax的是比如说:a页面是一个注册信息的页面,用户写完后,可以点"注册"后,提交到b页面(在b页面中检测用户名是否已注册),这时产生了一个刷新页面的操作.
而ajax是可以在a页面中就直接不用刷新页面就可以检测用户名是否被注册(可以看一下现在的各大网站的用户注册大部分采用的是ajax技术检测的).
但是,这个但是很重要,在ajax检测完页面后,到页面提交这段时间可能会有人注册你正在注册的用户名,所以,你还要在b页面中再检测一次.
还有一个但是,比如说在服务器过慢时(虽然这种情况不多),可能长时间无法返回检测用户是否已注的信息.
这两个但是就是我所指的实时性的问题.ajax不可能作到这两点.
当两种事情无明显的先后顺序时,你可以用ajax技术,而且这样作方便使用者.
但是当两件事有先后顺序时,比如用户要先注册,后佬能登录,这时你就不能用ajax同时进行,因为这样易出错.
总结:
一.ajax的优点:
作为一个java,前端水平有限,我还是倾向于jsp快速完成开发,但如果页面有大量交互 需要多次和服务器沟通 ajax 十分方便的, 如果是个偏静态的页,直接服务端生成内容就好了!
纯Html+Ajax和JSP两者对比的个人理解的更多相关文章
- 纯Html+Ajax和JSP两者的优缺点
我对jsp和ajax 一直比较困惑, jsp动态网页技术,在服务器端执行,能在网页中显示数据这是一种方式 .另一种方式是我打开一个网页(html),加载完成之后,使用js,ajax访问网络得到json ...
- Spring security csrf实现前端纯html+ajax
spring security集成csrf进行post等请求时,为了防止csrf攻击,需要获取token才能访问 因此需要添加 <input type="hidden" na ...
- Struts2、SpringMVC、Servlet(Jsp)性能对比 测试
Struts2.SpringMVC.Servlet(Jsp)性能对比 测试 . Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照它. 做为一个程序员,对于各个框架的性能要 ...
- html+Ajax和JSP的比较
1.有人说JSP会泄露源码(可能会有一些代码痕迹,但肯定没啥大事)2.又说,Ajax是为了分离前后台,让控制部分在前台处理,降低代码耦合度,后台只相当于服务. 3.能够让前台移植,降低后期维护成本.纯 ...
- 利用ajax向jsp传输数据
ajax代码 var obtn=document.getElementsByTagName('input')[0]; obtn.onclick=function () { var xhr=null; ...
- HTML实现包含公共部分:通过ECMA6的模块化,纯前端实现类似jsp:include的功能
以前一直是用 jsp:include 的方式来引入 html 头部的公共部分 php也有类似的方式 但以上两种,个人感觉都并不纯粹,本着折腾的精神,优化原有代码,解耦合 使用 ECMA6 的模块化方式 ...
- ajax +jsp+iframe无刷新上传文件[转]
http://hi.baidu.com/zj360202/blog/item/f23e3711f929c774cb80c475.html ajax jsp 无刷新上传文件 2009-10-26 16: ...
- 对ajax和jsp渲染的一些感想
一个多月来,也算是做了两个javaweb的项目,但是对于用哪种方式渲染页面一直有些抉择不定,第一个项目用的ajax,发现各种对htmlDom节点的操作十分的繁琐,需要找到数据填充的节点并添加id值,引 ...
- 通过ajax从jsp页面传输数据到web层,并从web层返回数据给jsp页面
jsp中ajax代码: 1 $.ajax({ var id = $("#studentid").val();//获取标签中的学生id url:'${pageContext.requ ...
随机推荐
- Josn转DataTable(转)
使用UI框架开发的时候就常常用到DataTable转Json的情况,但是最近完成一个微信公众号开发的项目,需要把微信接口传过来的json值作为转为DataTable后绑定到服务器控件上. 在网上找了很 ...
- Thread was being aborted.你遇到了吗?
这个Exception目前了解到的有两个原因造成: 1.Reponse.Write的问题(目前网上找到的信息十有八九都讲的是这个问题) 2.Web.Config中设定的exec ...
- codeforces 335A Banana(贪心)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Banana Piegirl is buying stickers for ...
- 为什么在CSS中不要再使用@import
http://www.stevesouders.com/blog/2009/04/09/dont-use-import/为什么在CSS中不要再使用@import
- set up size, title to tcl tk main window
#!/usr/bin/wish wm title . "this is main title" wm geometry . 500x300+30+200 500 --width 3 ...
- mysql之主从复制
原理--> 在数据库层面,复制语句或者行,因为在数据库层面,故只有主服务器生成,并放到二进制日志里面,才能复制给从服务器. 原理--> mysql的主从复制基于异步,主要有三个进程执行,分 ...
- LFS,编译自己的Linux系统 - 编译临时系统
编译GCC-4.8.2 PASS 1 解压并重命名 cd /mnt/lfs/sources tar -Jxf ../mpfr-3.1.2.tar.xz mv mpfr-3.1.2 mpfr tar - ...
- information_schema.collations 学习
information_schema.collations 表中的每一行对应一个排序规则 1.information_schema.collations 表中学用列: 1.id :排序规则的ID 2. ...
- ubuntu下编译源码级QT
注意必须好好看官方文档: http://qt-project.org/doc/qt-5/linux.html 包括编译Qt库依赖的包等等. 编译过程中发现以下错误: All the OpenGL fu ...
- 关于DLL模块导出函数
当然以前我知道有一个.def文件的,里面写的都是需要导出的函数,以为与__declspec(dllexport)作用是一样的.但是今天看公司项目源码的时候才知道,它们两个导出方法是有一定的区别的,编译 ...