纯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 ...
随机推荐
- 一、Autofac入门
想要将autofac集成到你的应用程序中需要经过如下步骤: 1.使用控制翻转(IoC)的思想架构你的应用程序: 2.添加autofac引用: 3.在应用程序入口...(At application s ...
- JS截取字符串:slice(),substring()和substr()
var string='abcdefg' 1.slice() string.slice(startLocation [, endLocation]) ps1:2个参数可以为负数,若参数值为负数,则将该 ...
- Struts2中的ActionContext
ActionContext(Action上下文) ActionContext介绍 通过上面用户注册例子的学习,我们知道Xwork与Web无关性,我们的Action不用去依赖于任何Web容器,不用和那些 ...
- java多线程什么时候释放锁—wait()、notify()
由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的.在以下情况下,持有锁的线程会释放锁: 1. 执行完同步代码块. 2. 在执行 ...
- 函数stripslashes去除转义 shopnc 搜索框过滤特殊字符 输入单斜杆会自动转义
如何php是如何处理和过滤特殊字符的呢? 搜索%_显示所有商品:搜索\会在搜索框内叠加\\ 查了一下 magic_quotes_sybase 项开启,反斜线将被去除,但是两个反斜线将会被替换成一个. ...
- [Head First Python]5. 推导数据:处理数据
读取4个文件内容,格式化数据,升序,显示每个文件前3个数据 julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21 james.txt 2-34, ...
- Ecstore中如何调用发起Ajax请求
Ecstore的JS框架使用了mootools,所以ajax调用也使用mootools中的Request组件. 语法: var myRequest = new Request([options]); ...
- python运维开发(十六)----Dom&&jQuery
内容目录: Dom 查找 操作 事件 jQuery 查找 筛选 操作 事件 扩展 Dom 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它 ...
- python笔记之itertools模块
python笔记之itertools模块 itertools模块包含创建有效迭代器的函数,可以用各种方式对数据进行循环操作,此模块中的所有函数返回的迭代器都可以与for循环语句以及其他包含迭代器(如生 ...
- C++之------运算符重载
① 什么是运算符重载? 何为C++的运算符重载呢? 其实就是运算符给它重新赋予新的含义或者多重含义.让它有另外一种新的功能. 为什么需要运算符重载? 面向对象中为了实现类的多态性,我们就引用了运算符 ...