版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/liu_yujie2011com/article/details/29812777

        几个问题引发的思考:什么是Ajax?它是干什么的?在什么时候用?同步和异步又是什么?这一连串的问题让我问的我真是彻底伤心啦!

按说前几集视频看完后,这几个问题就该攻克了,可是自己却还是不懂。

可见自己的学习方法真的有问题,有问题就要改嘛,如今就来解决下Ajax几个简单的问题。

什么是Ajax?       

       
AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScriptAnd XML)。

Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特之处。合在一起就成了一个功能强大的新技术。

该技术主要包含:

基web标准(standards-based presentation)XHTML+CSS的表示。

使用 DOM(Document Object Model)进行动态显示及交互。

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

使用 XMLHttpRequest 进行异步数据查询、检索。

使用 JavaScript 将全部的东西绑定在一起。

工作原理是什么?

           
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您能够使用JavaScript向server提出请求并处理响应,而不堵塞用户。

与传统开发方式对照

       
传统的web应用同意用户填写表单(form),当提交表单时就向webserver发送一个请求。

server接收并处理传来的表单,然后返回一个新的网页。即:发送——等待——返回。在这个过程中不进行不论什么工作。纯属等待。

这个做法浪费了很多带宽,因为在前后两个页面中的大部分HTML代码往往是同样的。

因为每次应用的交互都须要向server发送请求。应用的响应时间就依赖于server的响应时间。这导致了用户界面的响应比本地应用慢得多。

   

       
与此不同,AJAX应用能够仅向server发送并取回必需的数据,它使用SOAP或其他一些基于XML的webservice接口,并在client採用JavaScript处理来自server的响应。即:发送——发送——发送。等待的工作没了。将其交给Ajax来完毕。这样在server和浏览器之间交换的数据大量降低(界面要什么就更新什么,而不是更新整个页面内容),结果我们就能看到响应更快的应用。同一时候非常多的处理工作能够在发出请求的client机器上完毕,所以Webserver的处理时间也降低了。

             

Ajax的优缺点是什么?

长处:

1. 通过异步模式,提升了用户体验

2. 优化了浏览器和server之间的传输,降低不必要的数据往返,降低了带宽占用

3.Ajax引擎在client执行,承担了一部分本来由server承担的工作,从而降低了大用户量下的server负载。

缺点:

1.可能破坏浏览器后退button的正常行为。

2.使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。

3.Ajax的无刷新重载,因为页面的变化没有刷新重载那么明显,所以easy给用户带来困扰――用户不太清楚如今的数据是新的还是已经更新过的。

4.网络延迟——即用户发出请求到server发出响应之间的间隔——须要谨慎考虑。

       
当然这些问题的出现,就会有解决这个问题的方法,在这里不去一一说明了,在今后遇到相关的问题再查资料解决。

    通过这篇博客让我学习到今后在学习新知识的时候。一定要养成良好的习惯,先将基础知识有个总体的把控然后再看视频,不能仅仅依赖视频的学习。要知道看视频仅仅是一个開始。大量的知识还须要我们上网查资料。加油吧少年。

Ajax之基础的更多相关文章

  1. ajax技术基础详解

    一.概述 1.什么是ajax 可以与服务器进行[异步]交互的技术,浏览器无需刷新 2.什么时候出现ajax? -- XMLHttp 微软 1999年微软公司发布IE5版本,内嵌了ajax技术 什么时候 ...

  2. Ajax编程基础

    目录 Ajax编程基础 传统网站中存在的问题 Ajax概述 Ajax的应用场景 Ajax的运行环境 Ajax运行原理及实现 Ajax运行原理 Ajax的实现步骤 1.创建Ajax对象 2.告诉Ajax ...

  3. Ajax 学习 - 基础学习

    <AJax - Async Javascript and xml - 异步的JavaScript和XML> 一.基础认识 AJax技术的目的:实现页面无刷新数据动态更改 优点:  + 不需 ...

  4. Ajax之基础总结

    一.Ajax 简介 Ajax 由 HTML.JavaScript技术.DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序.在详细探讨 Ajax 是 ...

  5. Ajax——异步基础知识(一)

    基础概念 1.异步请求可以做到偷偷向服务器发送请求,而页面却不刷新 2.get异步请求传递参数是通过url追加键值对的方式 3.post异步请求比较特殊,需要设置请求的类型 User-Agent:浏览 ...

  6. Ajax全面基础学习(二)

    两种配置ajax的方式 $.ajax('url',{ 配置ajax}); $.ajax({ url : 'url' 其他ajax配置}) ajax的回调函数 $.ajax('url',{ //请求成功 ...

  7. Ajax全面基础学习(一)

    快捷方法: $.get(url,[data],[callback],[type])get方法的[data]将被链在url后面[callback]是请求成功后的回调,可以得到响应数据,如果请求失败,看不 ...

  8. 《所用到的AJAX技术基础》

    来自百度网页,w3cshool网页:AJAX = Asychronous JavaScript and XML,翻译成中文为:异步的JavaScript XML. 异步的意思就是不重新加载整个页面,后 ...

  9. ajax传输 基础一

    一个简单页面的传输 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

随机推荐

  1. c语言一个例子对比php学习随记

    今天开始学写一些简单的C例子,发现很多和PHP不一样的地方,做个笔记. #include <stdio.h> int main(void) { int a,b; printf(" ...

  2. inode学习笔记

    在学习文件描述符时会看到有个inode概念,今天学习了一下. 在操作系统里,一个文件对应一个inode,inode存储了该文件相关信息,作用有一点点像内存的指针,通过他可以找到对应位置上的数据,但是i ...

  3. Java SE、Java EE、Java ME三者的区别

    1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...

  4. spring cloud深入学习(十三)-----使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位 ...

  5. 五、Hive-HBase接口表性能分析

    设想: Hbase不支持join,不能做复杂统计类: Hive可以. Hive-hbase接口表岂不两全其美? 用户画像表有300个字段,每天都使用: 1.在业务系统里实时根据uid调取用户的画像信息 ...

  6. 主流浏览器HTML5视频格式差异

    因最近在研究video.js,现在遇到的问题是在js中设置了swf,但是在ie8下只是显示黑屏并没有播放视频,在网上进行搜索时查到了有关各个浏览器支持哪些视频格式的文章,现在此记录下,方便以后查阅. ...

  7. js作用域的销毁、不立即销毁、不销毁

    JavaScript中的函数执行会形成私有的作用域. (1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间 (2)作用域的不立即销毁 functio ...

  8. [BZOJ3990][SDOI2015][LOJ#2181]-排序

    说实话,这个题真好(?) <BZOJ题面> <LOJ题面> 看到这个题,一时没有思路 但是 我想到了一个错解:归并 这个题真的有一点把我们的思路往归并上引 于是WA10 诶?我 ...

  9. Codeforces 222B 数组行列交换操作

    /*做完这题发现自己好水,太伤人了.... 不过还是学到一些,如果直接暴力模拟的话肯定是TLM.. 所以要用虚拟数组来分别保存当前数组的每行没列在初始数组中的位置...*/ #include<c ...

  10. mybatis深入理解(三)-----MyBatis事务管理机制

    MyBatis作为Java语言的数据库框架,对数据库的事务管理是其非常重要的一个方面.本文将讲述MyBatis的事务管理的实现机制.首先介绍MyBatis的事务Transaction的接口设计以及其不 ...