Ajax与传统Web开发的异同



传统web开发模式

传统的Web应用交互由用户触发一个HTTP请求到服务器,服务器接收并对其进行处理后再返回一个新的HTML页到客户端。每当服务器处理客户端提交的请求时,客户都只能空闲等待,哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都会返回整个的HTML页,所以用户每次都要浪费时间和带宽去重新读取整个页面,这个做法不但浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,响应时间就依赖于服务器的响应时间,这也就导致了用户界面的响应比本地应用慢得多。

工作原理图

数据交互流程图

用户体验

页面操作—>提交命令—>等待服务器响应—>刷新页面。响应慢,需要等待;在多个页面中进行操作。

Ajax开发模式

不同于传统开发,AJAX应用采用的是异步交互方式,不需要等待服务器响应,另外AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的WebService接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,因此响应非常快。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

工作原理图

数据交互流程图

用户体验

页面操作—>提交命令—>继续页面操作—>在原界面上局部刷新。响应快不用等待;在一个页面进行操作。

AJAX优缺点

通过上述Ajax和传统Web开发的对比,接下来总结一下Ajax的优缺点。

AJAX特点

◎使用XHTML+CSS来标准化呈现

◎使用XML和XSLT进行数据交换及相关操作

◎使用XMLHttpRequest对象与Web服务器进行异步数据通信

◎使用Javascript操作DOM进行动态显示及交互

◎使用JavaScript绑定和处理所有数据

AJAX优点

◎局部刷新页面,减少用户心理和实际的等待时间,带来更好的用户体验

◎减轻服务器的负担,按需取数据,最大程度的减少冗余请求

◎基于xml标准化,并被广泛支持,不需安装插件等

◎进一步促进页面和数据的分离

◎可以在页面内与服务器通信,使得构建智能化的客户端控件成为可能。例如:数据表格,树型控件等各种复杂的控件。

AJAX缺点

◎AJAX依赖浏览器的JavaScript和XML,在编写的时候要考虑对浏览器的兼容性。

由于JavaScript和Debug的兼容性,在编写程序的时候需要先进行逻辑判断,对不同浏览器进行不同处理。

◎AJAX只是局部刷新,它可能破坏浏览器后退按钮的正常行为

浏览器仅能记下历史记录中的静态页面,在动态更新页面的情况下,用户无法回到前一个页面状态。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。

◎一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax

◎对搜索引擎支持较弱。

如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。

◎破坏程序的异常处理机制。

Ajax.dll,Ajaxpro.dll等这些Ajax框架是会破坏程序的异常机制的。

◎AJAX的安全性低

AJAX技术给用户带来很好的用户体验的同时也对IT企业带来了新的安全威胁,Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials的安全漏洞等等。

Ajax极大地改善了Web应用的可用性和用户的交互体验,并得到了用户和市场的广泛认可。我们可以说,Ajax就是用户和市场的选择。

看到几张非常棒的表格总结,直接粘贴过来分享一下。

***********************************************************************************

**********************************************************************************

时间: 2024-08-01 22:30:35

Ajax与传统Web开发的异同的相关文章

AJAX与传统Web开发比较

AJAX: 什么是AJAX         AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.         AJAX = 异步 JavaScript和XML(标准通用标记语言的子集).         AJAX 是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换         AJAX 可以使网页实现异步更新,意味着可以在不重新加载整个网页的情况下,对网页的

web前端开发与iOS终端开发的异同[转]

* {-webkit-tap-highlight-color: rgba(0,0,0,0);}html {-webkit-text-size-adjust: none;}body {font-family: Arial, Helvetica, sans-serif;margin: 0;color: #333;word-wrap: break-word;}h1, h2, h3, h4, h5, h6 {line-height: 1.1;}img {max-width: 100% !importan

使用knewcode,用传统C++开发Web网站

一.准备工作 1.编译器gcc Linux(建议Ubuntu 14.04 32位版)下,最新版本需下载源代码自行编译,地址如下, http://gcc.gnu.org/ Windows下,可以直接下载编译版本Mingw,下载地址如下, http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/ Ubuntu下,如不需要最新版本,可用如

Web Form 与 Asp.net MVC架构、开发之异同

本文所说的Web Form指的是基于.net 平台开发网站的框架(我们通常称之为:Asp.net),Web Form实际上分为两个部分:Web Form(可视化界面)和Asp.Net(后台web组件).所有System.Web.UI.*命名空间下的可以称为Web Form ,System.Web.*命名空间下的可以称为Asp.net.Asp.net诞生于2002年初,Web Form之前的微软Web 开发技术有ASP,ASP把业务逻辑和标语语言(html)代码混合在页面里,Web Form对AS

支持 out-of-the-box AJAX 的 Web 开发工具控件ASPxperience Suite

ASPxperience Suite 是我们下一代的 Web 开发工具控件,可以为客户带来更多优秀体验,包括导航.数据布局管理以及嵌在 Web 应用程序中的浮动控件的应用.它从底层编写,然后使用支持 ASP.NET 2.0 Framework ,并且完全支持 out-of-the-box AJAX .此产品包含在产品集合 DXperience™ Universal Subscription 中. 具体功能: 包含在 ASPxperience Suite 中的控件只产生少量的 HTML 代码 可以

减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同

本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". 业务逻辑,通俗说就是:比如要取数据的操作,取出会员编号为x的数据,原来我们一般是封装成函数,或者直接编写sql语句查询.现在是交给数据库的存储过程去完成. +------------------------------------------------------------ 写这篇文章的缘由 +-----

移动端页面开发及传统PC端网页开发的异同

   2017年12月份在公司做过一次技术分享,转眼间过去六个月了.... 今天在感叹完时间的飞逝之后,拿过来在这里分享一下吧,话题是:移动端页面开发及传统PC端网页开发的异同,这个ppt是搜集网上众路资源(包括视频课程)加上自己的理解总结的.如若有误,欢迎指正哦- 原文地址:https://www.cnblogs.com/catherLee/p/9118406.html

[原创]颠覆传统网站开发模式的web服务器

Jerry Server - 正式版1.0.0 文档 之前发过一篇文章,当时的想法现在看来真的不是很明确,得到了很多批评.不过,批评有利有弊,由此我又仔细思考了很多,最终明确了自己究竟要做什么.特厚着脸皮发出正式版文档! 1.缘由 以Java web举例,现在的网站系统开发模式,对于web端和服务端的数据交互以及页面渲染,无外乎两种: 第一种是交给后端处理,Jsp,Freemark模板引擎之流,这种开发模式需要前端人员做好静态页面交给后端去处理一些其它工作.这种开发模式到如今也依旧流行,这也是招

Web开发入门不得不看

如今,各种互联网的Web应用程序层出不穷,那么如何快速入门,成长为一个优秀的Web开发工作者呢? 这个问题不容易回答,几乎所有的培训机构都不能清晰地解答. 所以对于Web开发刚刚入门的菜鸟们,我觉得只有通过去做,去实验,学会Web开发,可能是学着学着,实验着实验着就会了. 没有人告诉你如何去做.我学习的时候,我的导师只是给了我一堆视频,一堆文档.我们从明确一个目标开始:"哦,这个阶段,我要独立完成一个简单的Web应用程序,例如新闻发布系统". 或许学会如何开发Web应用程序只是在完成这