本文将介绍浅谈ajax的详细情况,特别是关于一的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于AJAX基础(一)——AJAX简介、AJAX学习心得分
本文将介绍浅谈ajax的详细情况,特别是关于一的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于AJAX基础(一)——AJAX简介、AJAX学习心得分享----(一)AJAX初识+原生态AJAX、AJAX学习笔记(一)——初识AJAX、AJAX步步精心系列(一)AJAX简介的知识。
本文目录一览:- 浅谈ajax(一)(ajax的理解)
- AJAX基础(一)——AJAX简介
- AJAX学习心得分享----(一)AJAX初识+原生态AJAX
- AJAX学习笔记(一)——初识AJAX
- AJAX步步精心系列(一)AJAX简介
浅谈ajax(一)(ajax的理解)
AJAXS:异步的javascript及XML(Asynchronous JavaScript And XML)
ajax是2005年有google推广开来的一种编程模式。
ajax不是新的编程语言,而是一种使用现有标准的新的方法。
ajax可以创建更好、更快以及友好的web应用程序。
ajax是基于javascript和http请求(http request)
现阶段使用ajax的案例:新浪微博、google地图、开心网等大多数的网站。
下面来看一个demo:
<html> <head> <Meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>ajax</title> <script type="text/javascript"> function loadXml(){ alert("ok"); } </script> </head> <body> <div id="myDiv"> <h3>用ajax改变这个文本!</h3> </div> <!--<input type="button" onClick=""></input> --> <button type="button" onClick="loadXml()">改变文本</button> </body> </html>
在这里值得一提的是 XML HttpRequest是ajax的基础。
XML HttpRequest对象
XML HttpRequest由于后台与服务器进行交换数据,这就意味着可以在不重新加载整个网页的情况下,对网特的某部分进行更新。
1、创建XML HttpRequest对象
创建XML HttpReques对象的语法格式: variable = new XMLHttpRequest();
对于老版本的ie使用的是activeX对象
variable= new ActiveXObject("Microsoft.XMLHTTP");
在我们的实际项目中,通常为了适应现在的浏览器,需要检查是否是支持XML HttpReques对象,如果支持,则创建XMLHttpRequest对象,
如果不支持,则创建ActiveXObject;
var xmlhttp; if(windows.XMLHttpRequest) { xml=new XMLHttpRequest(); //对于支持xmlhttprequest对象的浏览器这里面直接创建 } else { xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); }2、向服务器发送请求
如果需要向服务器发送请求,我们使用的是XMLHttpRequest对象的open()、send()两个方法。
xmlhttp.open("GET","test1.txt",true); xmlhttp.send();
方法 | 描述 |
---|---|
open(method,url,async) | method是指请求的类型,GET或者POST;url是文件在服务器的位置;async:同步或异步(true) |
send(String ) | 用于POST请求 |
但是这里面出现一个问题:到底使用GET还是POST,我们来说一下POST和GET的区别:
与POST相比GET更简单更快,并且在大多数的情况下是可以使用的。
但是在以下的情况中是必须使用POST请求的:
1、无法使用缓存文件更新服务器上面的文件或者数据库)
2、向服务器发送大量的数据。
3、发送半酣位置字符的用户的输入时,POST比GET更稳定也更可靠。
一个简单的GET请求:
xmlhttp.open("GET","demo.jsp",true); xmlhttp.send();但是在这个例子中,我们可能会得到的是缓存的结果,为了避免这种缓存的出现,我们想指向URL添加一个唯一的ID:
xmlhttp.open("GET","demo.jsp?t="+Math.random(),true); xmlheep.send();另外:如果需要使用GET方法发送信息并带上参数的时候我们可以这么写:
xmlhttp.open("GET","demo.jsp?t="+name=Davint&age=24",true); xmlhttp.send();
POST请求
一个简单的post请求:
xmlhttp.open("POST",true); xmlhttp.send();如果想html或者jsp页面里面那样POST数据,我们可以使用 setRequestHeader()来添加HTTP头,然后再send()中规定希望发送的数据是什么;
xmlhttp.open("POST",true);
xml.setRequestHeader("Content-type","appliacation/x-www-form-urlencode");
xmlhttp.send(name=Davint&age=24);
setRequestHeader(header,value):想请求添加HTTP头,header规定头的名称是什么;value用来规定头的值。AJAX基础(一)——AJAX简介
你是什么?(AJAX简介)
AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
主要包含了以下几种技术:
Ajax(Asynchronous JavaScript + XML)的定义
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操作;
使用 XMLHttpRequest进行异步数据查询、检索;
使用 JavaScript将所有的东西绑定在一起。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的"派生/合成"式(derivative/composite)的技术正在出现,如"AFLAX"。
AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。
Ajax的优势
1)不需要插件支持
Ajax不需要任何浏览器插件,就可以被绝大多数主流浏览器所支持,用户只需要允许Javascript在浏览器上执行即可。
2)优秀的用户体验
这是Ajax技术的最大优点,能在不刷新整个页面的前提下更新数据,这使得Web应用程序能更为迅速地回应用户的操作。
3)提高Web程序的性能
与传统模式相比,Ajax模式在性能上的最大区别就在于传输数据的方式,在传统模式中,数据提交是通过表彰来实现的,而数据获取是靠全页面刷新来重新获取整个页面的内容。而Ajax模式只是通过XMLHttpRequest对象向服务器端提交希望提交的数据,即按需发送。
4)减轻服务器和带宽的负担
Ajax的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。它在客户端创建Ajax引擎,把传统方式下的一些服务器负担工作转移到客户端,便于客户端资源处理,减轻服务器和带宽的负担。
Ajax的不足
1)浏览器对XMLHttpRequest对象的支持度不足
Ajax的不足之一首先来自于浏览器。IE在5.0及以后的版本才支持XMLHttpRequest对象,Mozilla、Netscape等浏览器支持XMLHttpRequest则更在其后。为了使得Ajax应用能在各个浏览器中正常运行,程序员必须花费大量的精力编码以兼顾各个浏览器之间的差别,来让Ajax应用能够很好地兼容各个浏览器。使得Ajax开发难度比普通的Web开发高出很多。许多程序员因此对Ajax望而生畏。
2)破坏浏览器前进、后退按钮的正常功能
在传统的网页中,用户经常会习惯性的使用浏览器自带的前进、后退按钮,然而Ajax改变了此Web浏览习惯。在Ajax中前进、后退按钮的功能都会失效,虽然通过通过一定的方法(添加锚点)来使得用户可以使用前进、后退按钮。但相对于传统的方式却麻烦了很多,对于大多数程序来说宁可放弃前进、后退的功能,也不愿意在繁琐的逻辑中去处理该问题。然而,对于用户来说,他们经常会碰到这种情况,当单击一个按钮触发一个Ajax交互后觉得不想这样做,接着就去习惯性的单击后退按钮,结果发生了最不愿意看到的结果,浏览器后退到了一个先前的一个页面,通过Ajax交互得到的内容完全消失了。
3)对搜索引擎的支持的不足
对于搜索引擎的支持也是Ajax的一项缺憾。通常搜索引擎是通过爬虫程序来对互联网上的数以亿计的海量数据来进行搜索整理的,然而爬虫程序现在还不能理解那些奇怪的Javascript代码和因此引起的页面内容的变化,这使得应用Ajax的站点在网络推广上相对于传统站点明显处于劣势。
4)开发和调试工具的缺乏
JavaScript是Ajax的重要组成部分,在目前,由于缺少很好的JavaScript开发和调试工具,使很多Web开发者对JavaScript望而生畏,这对于编写Ajax代码就更加困难了。同时,目前许多Web开发者已经习惯使用可视化的工具,对亲自动手编写代码有畏惧感,这也在一定程度上影响了大家对Ajax的应用。
你从哪儿来?(为什么会出现AJAX)
每一项技术的产生和发现必有其需要产生的闰土,AJAX也不例外。
AJAX技术在1998年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软Exchange Server,并且迅速地成为了Internet Explorer 4.0的一部分。部分观察家认为,Outlook Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊。2005年初,许多事件使得Ajax被大众所接受。Google在它著名的交互应用程序中使用了异步通信,如Google讨论组、Google地图、Google搜索建议、Gmail等。对Mozilla/Gecko的支持使得该技术走向成熟,变得更为易用。
与其说AJAX是一种新的技术,不如说他是一种新的思想,他有着传统网页开发的特性,但是同时也解决了传统网页不断刷新网页的问题,把同步网页开发编程异步。一张图胜过千言万说,下面是一张解释图:
AJAX在程序运行中与传统网页开发的区别
下面是AJAX与传统网页开发的异同:
从页面端、用户体验和服务器单分析来看:
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
AJAX学习心得分享----(一)AJAX初识+原生态AJAX
总结
以上是小编为你收集整理的AJAX学习心得分享----(一)AJAX初识+原生态AJAX全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
AJAX学习笔记(一)——初识AJAX
Ajax 的核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您可以使用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户。
AJAX步步精心系列(一)AJAX简介
一 定义
AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),不是新的编程语言,而是一种使用现有标准的新方法。是一套综合了多项技术的浏览器端网页开发技术。
AJAX通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
二 应用
- 运用基于web标准XHTML+CSS来表达信息;
- 运用DOM来运行动态显示及交互;
- 运用XML和XSLT操作数据
- 运用XMLHttpRequest进行异步数据检索;
- 运用JavaScript技术, 将所有的东西绑定在一起。
总结:在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上。
三 传统的Web开发PK AJAX
四 优缺点
(一)优点
更迅捷的响应速度。能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。
(二)缺点及解决方案
1、破坏浏览器的后退功能。
用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙。
解决方案:可以通过创建或使用一个隐藏的IFRAME来重现页面上的变更。
2、难于将某个特定的状态保存到收藏夹中。
解决方案:大部分都使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持追踪,允许用户回到指定的某个应用程序状态。
3、网络延迟。
即用户发出请求到服务器发出响应之间的间隔。如果不给予用户明确的回应,没有恰当的预读数据,或者对XMLHttpRequest的不恰当处理,都会使用户感到厌烦。
解决方案:使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。
4、Ajax的无刷新重载。
由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰——用户不太清楚现在的数据是新的还是已经更新过的;
解决方案:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等不同的浏览器对各种技术和标准的支持。
5、浏览器的兼容性问题
Ajax在本质上是一个浏览器端的技术。各家浏览器对于JavaScript/DOM/CSS的支持总有部分不太相同或是有Bug,甚至同一浏览器的各个版本间对于JavaScript/DOM/CSS的支持也有可能部分不一样。导致写Ajax应用时花费时间在调试浏览器的兼容性而非在应用程序本身。。
6、业务逻辑分散
Ajax技术之主要目的在于局部交换客户端及服务器之间的数据。由于业务逻辑可能分散在客户端及服务器,且以不同之程序语言实现,这导致Ajax应用程序极难维护。
7、多进程或多线程的竞争问题
Ajax是以异步的方式向服务器提交需求。如果同时有多个Ajax需求及窗体提交需求时。程序员因此必须自行处理或在JavaScript里面动手脚以避免这类竞争问题的发生。
小结:AJAX,异步的JavaScript与XML技术,是一套综合了多项技术的浏览器端网页开发技术.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
今天的关于浅谈ajax和一的分享已经结束,谢谢您的关注,如果想了解更多关于AJAX基础(一)——AJAX简介、AJAX学习心得分享----(一)AJAX初识+原生态AJAX、AJAX学习笔记(一)——初识AJAX、AJAX步步精心系列(一)AJAX简介的相关知识,请在本站进行查询。
本文标签: