基本概念

1.1,Ajax

AJAX:即“Asynchronous Javascript And XML”(异步的JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,尤其是在一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax的应用实例有:新浪微博、Google 地图、开心网等等。

1.2,传统Web开发

World Wide Web(简称Web):是随着Internet的普及使用而发展起来的一门技术,其开发模式是一种请求→刷新→响应的模式,每个请求由单独的一个页面来显示,发送一个请求就会重新获取这个页面。

1.3,同步

同步通信方式,是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,信息传输的双方用同一个时钟信号确定传输过程中每1位的位置。(传统的Web开发)

1.4,异步

异步通信方式:是将比特分成小组来进行传送。一般每个小组是一个8位字符,在每个小组的头部和尾部都有一个开始位和一个停止位,它在传送过程中接收方和发送方的时钟不要求一致,也就是说,发送方可以在任何时刻发送这些小组,而接收方并不知道它什么时候到达。(Ajax)

附:同步通信和异步通信示意图

1.5,理解

看到Ajax和传统的Web开发时,就突然想起了前段时间刚刚总结的软工过程模型。传统的Web开发就好比是瀑布模型,它的下一步实现,完全建立在上一步的基础之上,如果上一步没有完成,下一步就没办法开展,当用户向服务器发送请求时,服务器端必须完全处理好客户端的请求,然后客户端完全接收到服务器端的响应后,才能继续进行操作。如果是刷新,那么久必须刷新整个页面,当整个页面都加载出来时,才可以进行显示。而Ajax技术,就可以看做是增量、螺旋、喷泉等了。它的下一步实现,并不完全依赖于上一步的实现。就像是增量一样,它可以将一个大型的请求,分化为很多个不等的增量增量模型,在这里,我理解其为局部实现。就好似Ajax中的局部刷新,我可以将我的真个Web页划分为不等的增量,每个增量都是独立的,我可以独立的对其中某一个增量进行一次完整的请求-刷新-显示。(个人理解)

联系和区别

联系:Ajax也是一种网站开发技术!

主要区别:

探究传统Web开发和Ajax技术的区别,首先看其各自的程序模型:

效率:1,从同步和异步的通信方式中可以看出,异步中数据所占的比例少于同步中数据所占的比例,所以其数据传输效率小于同步通信(传统的Web开发)。2,Ajax开发相对于传统的Web开发,增添了一个Ajax引擎,这一个模块主要用于对服务器端传送过来的数据进行解析,在这一过程中,相对于传统的Web开发,其数据量大大减少(原因:结合第一点),所以,其效率相对于传统Web开发要高。

交互方式:Ajax采用异步通信,主要以数据交互为主;传统的web开发采用同步同喜,主要以页面交互为主。

Ajax本身的不足

1,破坏了浏览器的后退机制。

原因:Ajax实现了动态更新数据,浏览器并没有对整页进行更新加载,而仅仅是局部,作为用户无法通过Back按钮回复到上一级状态。

解决方案:设置一个隐藏的容器,将网站记录保存起来,当用户需要返回到上一级时,在这个隐藏的容易里面进行搜索。(个人猜想:不运用这个隐藏的容器,运用设计模式中的备忘录模式,但如果说采取设计模式,那么最多可保存一个状态页,简单说来,后退按钮只可以执行一次。)

2,兼容性不高,对浏览器的支持比较弱

这一点目前还没有具体的体会,只是在写demo的时候,运用到Ajax的时候,要特别的对搜索引擎进行分类处理。

备注:Ajax的优点,有时也刚巧就带来的它的不足,目前能够理解的就这两点,但实际上Ajax还破坏了安全机制、异常机制,违背了资源定位等。这些都需要进一步的学习和实践去验证。

Ajax与传统Web开发的区别的更多相关文章

  1. 【Ajax 1】Ajax与传统Web开发的区别

    导读:从用户体验度的角度来说,利用Ajax进行开发的网站,其体验度高于利用传统Web开发技术,那么,是什么因素导致了这一现象呢?难道说Ajax开发,就一定优于传统Web技术吗?本篇文章,将主要介绍Aj ...

  2. 来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较

    一.什么是Ajax Ajax(Asynchronous Java and XML的缩写)是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助.简单地说,在不需要重新刷新页面的情况下 ...

  3. ThingJS和传统3D开发的区别

    物联网3D可视化开发已经辐射到各行各业,无论车间还是消防,城市还是粮仓,亦或是地铁.科技园,物联网可视化是科技的进步,也是行业的进步.而传统的3D可视化开发实施起来并不那么乐观.如果使用ThingJS ...

  4. APP开发和web开发的区别

    1.web开发: 1.浏览器直接访问,协议是http,基本都是PC访问,也就是在家和办公场合,网络比较好. 2.web如果多个服务集成的话使用的是ESB来统一集成 2.APP开发 1.手机app客户端 ...

  5. java、php、.net关于web开发的区别

    一提到web开发,目前在世界上流行性的三个帮派就是php,java和asp.net,这个世界上的百分之99的网站或者类似的应用都是由这三种语言的开发,这里请原谅我忽视某些小众语言如python之类.三 ...

  6. Swoole高效跟传统的web开发有什么区别?

    一.swoole的运行模式 Swoole高效跟传统的web开发有什么区别,除了传统的LAMP/LNMP同步开发模式,swoole的异步开发模式是怎么样的. 1.1.传统web开发模式 PHP web开 ...

  7. Web开发与设计之Google兵器谱-Web开发与设计利器

    Web开发与设计之Google兵器谱-Web开发与设计利器 博客分类: Java综合 WebGoogleAjaxChromeGWT 笔者是个Java爱好者也是用Java进行web开发的工作者.平时笔者 ...

  8. X5的UI部分和传统Web页面开发的差异

    http://doc.wex5.com/different-with-std-web-ui/#1 X5的UI部分和传统Web页面开发的差异 WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速 ...

  9. Struts2---Result(传统Web应用程序与Ajax应用程序的异同)

    看了很久的struts,在视频和书的引导下,慢慢明白了点,推荐:<struts 2 in action>和马士兵的视频 今天看结果这块时,由于还没有学过ajax等,不太明白,但是必须弄懂嗒 ...

随机推荐

  1. 正则表达式 grep文本查询 sed流处理 应用

    一.正则表达: ^:以什么什么开头,^a:以a字符开头 $:以什么什么结尾,b$:以b字符结尾 *:左边字符0-无穷个 +:左边字符1-无穷个 .:代表单字符 ?:前导字符为零个或1个 {n}:左面字 ...

  2. NodeJS让前端与后端更友好的分手

    学问   最近“上层建筑”在兴起国学热,所以公司几个月前决定开发一款名叫“学问”的有关于国学的app.     APP的详情页面还是由web来显现具体内容,有些类似于新闻页,图文混排什么的web是最适 ...

  3. [Openwrt 扩展上篇]USB挂载&U盘启动&Samba共享

    最近偷懒,没学习,反想起自己的路由刷了Openwrt,正好闲置了一个硬盘想拿来做个网络硬盘,于是开始了折腾....这里将不谈论如何刷Openwrt,如何ssh,如何添加PPOE,如何添加相对应服务的包 ...

  4. c++ static静态

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

  5. JDK1.8源码LinkedList

    引用博文链接 : https://www.cnblogs.com/leskang/p/6029780.html LinkedList继承了 AbstractSequentialList抽象类,而不是像 ...

  6. mysql状态查看 QPS/TPS/缓存命中率查看【转】

    运行中的mysql状态查看   对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态.    (1)QPS(每秒Query量)  QPS = Questions(or Queries ...

  7. servlet Filter过滤javascript

    新建HttpServletRequestWrapper子类XssHttpServletRequestWrapper import javax.servlet.http.HttpServletReque ...

  8. AdvStringGrid 垂直居中 、水平居中

    官网faq,解答: 结果:

  9. LeetCode828. Unique Letter String

    https://leetcode.com/problems/unique-letter-string/description/ A character is unique in string S if ...

  10. Ubuntu 搭建etcd

    一.简介 etcd是一个高可用的分布式键值(key-value)数据库.etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现. 提供配置共享和服务发现的系统比较多,其中最为大家熟知的是 ...