基本概念

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. 把JS和CSS合并到1个文件

    合并JS文件和CSS文件很多人都知道,也用过,目的是为了减少请求数.但有时候我们觉的把JS合并到1个文件,CSS又合并到另外1个文件也是浪费,我们如何能把CSS和JS一起合并进1个文件了? 这里需要使 ...

  2. 用Grub4dos引导,硬盘安装ArchLinux

    本来在工作机上用winXP,最近想深入Linux开发,于是决定装个Linux.家里的archLinux + awesome用得很好, 于是决定在工作机上也装一套. 不想刻盘,也不想用U盘,通过Grub ...

  3. django的缓存,信号,序列化

    一 Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的 ...

  4. httpd.conf详解,因为php始终报fileinfo扩展无法加载的错

    # # This is the main Apache HTTP server configuration file. It contains the # configuration directiv ...

  5. 查看 CUDA cudnn 版本

    cuda 版本 cat /usr/local/cuda/version.txt cudnn 版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MA ...

  6. STL容器基本功能与分类

    STL有7中容器. 分别为: vector 向量 <vector>(头文件) 随机访问容器.顺序容器 deque 双端队列 <deque> 随机访问容器.顺序容器 list   ...

  7. socket系统调用

    SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) { int retval; struct socket *sock; in ...

  8. LINUX修改、增加IP的方法,一张网卡绑定多个IP/漂移IP【转】

    临时增加IP命令:ifconfig eth0:1 ip地址 netmask 子网码 broadcast 广播地址 gateway 网关  ifconfig eth0:1 10.1.104.65 net ...

  9. Vue模板语法总结

    文本 数据绑定最常见的方式就是使用"Mustache"语法(两个大括号{{ }})的文本插值 <span>Message: {{ msg }}</span> ...

  10. AdvStringGrid 固定行、列