基本概念

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. Druid.io SQL乱码问题

    1.场景 1.1.依赖版本 avatica-core 1.11.0 druid 0.12.0 1.2.问题重现: 使用Avatica JDBC查询语句:SELECT score FROM studen ...

  2. 【Codeforces858F】Wizard's Tour [构造]

    Wizard's Tour Time Limit: 50 Sec  Memory Limit: 512 MB Description Input Output Sample Input 4 5 1 2 ...

  3. Multidimensional Queries(二进制枚举+线段树+Educational Codeforces Round 56 (Rated for Div. 2))

    题目链接: https://codeforces.com/contest/1093/problem/G 题目: 题意: 在k维空间中有n个点,每次给你两种操作,一种是将某一个点的坐标改为另一个坐标,一 ...

  4. 解决 Windows 环境 Git Bash 无法识别 Composer 命令的问题

    思路 模拟 Linux,复制一个 composer 文件到 Git Bash 的 /usr 的子目录,并赋予执行权限. 解决 首先,请确定你的 composer.phar 文件路径.我的是: /d/w ...

  5. MySQL修改datadir目录

    更改MySQL的数据目录由/usr/local/mysql/data/更换至/data/mysql/ 第一种方法修改my.cnf 1)关闭MySQL [root@test2 ~]# service m ...

  6. Python类相关的装饰器

    一.装饰器装饰类方法 from functools import wraps def wrapper(func): @wraps(func) def inner(self,*args,**kwargs ...

  7. Django的ContentType框架django_conent_type

    Django包含了一个conenttype应用程序,记录了Django项目中安装的所有模型,为当前项目所有基于Django驱动的model提供了更高层次的抽象接口. 一.概述 ContentTypes ...

  8. 项目中遇到的问题:Gradle传递性依赖冲突

    问题描述: 在调用别人接口时,由于他们接口做了拦截处理在使用RestTemplate调用时必须要使用@Qualifier("他们封装好的类"),需要导入jar包 gradle方式导 ...

  9. 转载:Google 官方应用架构的最佳实践指南 赞👍

    官方给的实践指南,很有实际的指导意义,  特别是对一些小公司,小团队,给了很好的参考意义. 原文地址: https://developer.android.com/topic/libraries/ar ...

  10. 打开mvc项目无法运行,报"Unable to launch the IIS Express Web server"

    今天遇到一个问题,打开asp.net mvc 项目,右击浏览器运行,无法运行... 提示下面错误, 解决方案: 删除项目文件夹下的 .vs 文件夹,然后重新打开项目运行即可 参考:http://www ...