GVKun编程网logo

AJAX(ajax怎么实现前后端交互)

7

如果您想了解AJAX和ajax怎么实现前后端交互的知识,那么本篇文章将是您的不二之选。我们将深入剖析AJAX的各个方面,并为您解答ajax怎么实现前后端交互的疑在这篇文章中,我们将为您介绍AJAX的相

如果您想了解AJAXajax怎么实现前后端交互的知识,那么本篇文章将是您的不二之选。我们将深入剖析AJAX的各个方面,并为您解答ajax怎么实现前后端交互的疑在这篇文章中,我们将为您介绍AJAX的相关知识,同时也会详细的解释ajax怎么实现前后端交互的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

AJAX(ajax怎么实现前后端交互)

AJAX(ajax怎么实现前后端交互)


l Ajax 的技术的产生
Ajax 被认为是 (Asynchronous JavaScript and XML 的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页
面的技术都被叫做 Ajax.





下面写一个程序关于怎么样与服务器建立连接的实例图:::::


-----------------------------------------**************************GET/POST方式提交请求**********************************-----------------------------------------------------


function ajaxFunction (){
   var xmlHttp;
   try{ // Firefox,Opera 8.0+,Safari
        xmlHttp=new XMLHttpRequest ();
    }
    catch ( e){
       try{// Internet Explorer
             xmlHttp=new ActiveXObject("Msxml2.XMLHTTP" );
          }
        catch ( e){
          try{
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP" );
          }
          catch ( e){}
          }
    }
     return xmlHttp;
 }


window.onload=function (){
    document.getElementById ("ok"). onclick=function (){
       
          //1 创建XMLHttpRequest对象
          var xmlHttp=ajaxFunction ();
          /*
           *
           * 2 接收服务器返回的数据[注册监听]
           *   * 怎接收?
           *   * 什么时候接收呢?
           *      onreadystatechange:
                *              •该事件处理函数由服务器触发,而不是用户
                *             •在 Ajax 执行过程中,服务器会通知客户端当前的通信状态。这依靠更新 XMLHttpRequest 对象的 readyState 来实现。
        *            改变 readyState 属性是服务器对客户端连接操作的一种方式。
                 *           •每次 readyState 属性的改变都会触发 readystatechange事件
              * 在 Ajax 执行过程中,服务器会通知客户端当前的通信状态。通信状态的改变要激发函数的执行
              *
  <img src="http://img.blog.csdn.net/20150219164750772?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />           

           */
          xmlHttp.onreadystatechange =function(){
              alert(xmlHttp.readyState );
              //alert(xmlHttp.status);
           * 处理响应处理函数都应该做什么。 首先,它要检查XMLHttpRequest对象的readyState值,* 判断请求目前的状态。
           * 参照前文的属性表可以知道,readyState值为4的时候,
           * 代表服务器已经传回所有的信息,可以开始处理信息并更新页面内容了。如下:
              if(xmlHttp.readyState ==4){
    <img src="http://img.blog.csdn.net/20150219164907883?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />                
                  if (xmlHttp .status ==200|| xmlHttp.status==304 ){
                                         //接收服务器端返回的数据
                                responseText
* XMLHttpRequest 的 responseText 属性包含了从服务器发送的数据。
* 它是一个HTML,XML或普通文本,这取决于服务器发送的内容。  
* 当 readyState 属性值变成 4 时,responseText 属性才可用,表明 Ajax 请求已经结束。
                       var data=xmlHttp.responseText ;
                       alert(data);
                  }
              }
          } 
         
          /*
          
          * 3 打开和服务器的连接
               <img src="http://img.blog.csdn.net/20150219164938088?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
          *  xmlHttp.open("get","../testServlet",true);
          *   * 参数1:请求方法  get post
          *   * 参数2:请求的路径
          *   * 参数3:表示请求是否要异步传输,默认值为true(异步)
          */
       1.GET方式请求: xmlHttp.open("get","../testServlet?timeStamp="+new Date().getTime ()+"&c=18",true);
       2.POST方式请求:
          
        <img src="http://img.blog.csdn.net/20150219165021313?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20150219165045963?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />  
       
           
         
          /*
          * 4 发送数据到服务器端
<img src="http://img.blog.csdn.net/20150219165215832?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
               
          *   * 如果请求方法是get,此时send方法不能发送数据到服务器端
          *     即使发送了数据,服务器端也接收不到,该参数设置null
          *   * 此时传递参数可以使用url方式传递参数 
          */
          xmlHttp.send("a=9&b=8" );  //xmlHttp.send(null);
         
     }   
}
-----------------------------------------**********************response返回值类型************************************-----------------------------------------------------
1.responseText.
<img src="http://img.blog.csdn.net/20150219165255631?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />


2.responseXML.
<img src="http://img.blog.csdn.net/20150219165317375?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20150219165409276?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMtixODE1OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
-------------------关于从服务器响应过里的XML数据进行解析的实例代码:::----------------------------------


// out.println("<china>");
//         out.println( "<province name='吉林省'>" );
//         out.println( "<city>长春</city>" );
//         out.println( "<city>吉林市</city>" );
//         out.println( "<city>四平</city>" );
//         out.println( "<city>松原</city>" );
//         out.println( "<city>通化</city>" );
//         out.println( "</province>");
// out.println( "</china>");

  xmlHttp. onreadystatechange=function (){
              if(xmlHttp.readyState ==4){
                  if(xmlHttp.status==200 ||xmlHttp .status ==304){
                       var xmlDoc=xmlHttp.responseXML ;
                       //alert(data);
                       var provinceXmlElements=xmlDoc.getElementsByTagName ("province");
                       for(var i=0 ;i <provinceXmlElements. length;i++){
                           var name=provinceXmlElements [i ].getAttribute ("name");
                          
                           var optionElement=document .createElement ("option");
                           optionElement.setAttribute ("value",name);
                           var optionTextElement=document .createTextNode (name );
                           optionElement.appendChild (optionTextElement );
                          
                           var provinceElement=document .getElementById ("province");
                           provinceElement.appendChild (optionElement );
                       }
                  }
              }
          }


- -----------------------------------------*******************AJAX 开发框架 ***********************------------------------------------------

AJAX实质上也是遵循Request/Server模式,所以这个框架基本的流程是:

l 对象 初始化
l 发送请求
l 服务器接收
l 服务器返回
l 客户端接收
l 修改客户端页面内容。

只不过这个过程是异步的。
------------------------------------------******************* 数据格式提要***********************------------------------------------------
l 在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
l 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:
XML
JSON
HTML

------------------------------------------******************* JSON***********************------------------------------------------
l JSON JavaScript Object Notation )一种简单的数据格式,比 xml 更轻巧。 JSON JavaScript 原生格式

这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

l JS ON 的规则很简单: 对象是一个无序的“‘名称 / 值’对”集合。一个对象以“ {” (左括号)开 始,“ }” (右括号)结束。
每个“名称”后跟一个“ :” (冒号);“‘称 / 值’对”使 用“ ,” (逗号)分隔

规则如下:

1 )映射用冒号(“:”)表示。名称 :
2 )并列的数据之间用逗号(“,”)分隔。 名称 1: 1 , 名称 2: 2
3 ) 映射的集合(对象)用大括号(“ {}” )表示。 { 名称 1: 1, 名称 2: 2}
4 ) 并列数据的集合(数组)用方括号 (“[]”) 表示。

[

{名称1:,名称2:2},

{名称1:,名称2:2}

]

5) 元素值可具有的类型: string,number,object,array,true,false,null
JSON用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。
对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。

------------------------------------------******************* JSON示例***********************------------------------------------------
在javascript中:::::

<script language="JavaScript">
     var people={
       "username":"zhang","sex":"male","tel":{"phone" :"110","cell":"13812345678" },"address":[
                   {"city": "tieling","postcode" :"110"},{"city": "beijing","postcode" :"100"}
                  ]  
     }
    
     alert(people.username );
     alert(people.tel.cell);
     alert(people.address[1 ].city );

  </script >


------------------------------------------******************* JSON解析 ***********************------------------------------------------



-----------------------------------------****************** * 解析 HTML ***********************------------------------------------------
l HTML 由一些普通文本组成。如果服务器通过 XMLHttpRequest 发送 HTML 文本将存储在 responseText属性中。
l 不必从 responseText 属性中读取数据。它已经是希望的格式,可以直接将它插入到页面中。
l 插入 HTML 代码最简单的方法是更新这个元素的 innerHTML 属性。
l 优点:
从服务器端发送的 HTML 代码在浏览器端不需要用 JavaScript 进行解析。
HTML 的可读性好。
HTML 代码块与 innerHTML 属性搭配,效率高。
l 缺点:
若需要通过 AJAX 更新一篇文档的多个部分, HTML 不合适
innerHTML 并非 DOM 标准。

-----------------------------------------****************** * 对比小结 ***********************------------------------------------------

l 若应用程序 不需要与其他应用程序共享数据的时候 , 使用 HTML 片段来返回数据时最简单的
l 如果数据需要重用 ,JSON 文件是个不错的选择 , 其在性能和文件大小方面有优势
l 当远程应用程序未知时 ,XML 文档是首选 , 因为 XML web 服务领域的 世界语”

1.(ajaxStart和ajaxSend)和2.(ajaxStop和ajaxComplete)之间有什么区别?

1.(ajaxStart和ajaxSend)和2.(ajaxStop和ajaxComplete)之间有什么区别?

基本上就是这个问题(括号很重要)

答案1

小编典典

.ajaxStart()并且.ajaxStop()针对
所有 请求 一起使用ajaxStart在第 一个
同时请求开始时ajaxStop触发,然后在该同时批处理的 最后一个
完成时触发。

因此,假设您一次发出3个请求,ajaxStart()在第一个请求开始时ajaxStop()触发,在最后一个请求返回时(它们不一定按顺序完成)触发。

这些事件 没有 任何参数,因为它们是针对一批请求的:

.ajaxStart( handler() ).ajaxStop( handler() )

.ajaxSend().ajaxComplete()
每个请求 发送/完成后触发一次。这就是为什么这些处理程序传递参数而全局/批处理参数不传递的原因:

.ajaxSend( handler(event, XMLHttpRequest, ajaxOptions) ).ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )

对于单个文档来源,您需要遵循的是API的Global
Ajax Events部分。

16-Ajax学习之什么是Ajax,Ajax原理

16-Ajax学习之什么是Ajax,Ajax原理

1.Ajax是什么?
Asynchronous Javascript And XML,异步JavaScript和XML
包含7种技术: xml,javascript,css,xmlhttprequest,xstl,dom,xhtml
2.传统的客户端和服务器响应方式缺点:
1.数据是整体提交
2.整个页面有刷新
3.用户体验不好
4.占带宽(使用流量大)



3. ajax是一个与服务器语言无关的技术。
可以用到PHP,javaee,.net网站。
4.为什么ajax会如此流行?
1.页面无刷新的动态数据交换
2。局部刷新页面{验证用户名唯一}
3.界面的美观[增强用户体验]
4.对数据库的操作
5.可以返回简单的文本格式,也可以返回xml文件格式,json数据格式



无刷新数据交换技术有下:
flash,java applet,框架,iframe,ajax




ajax原理:
老师想买个东西,可是他正在上课,
如果去买东西了,同学们就得等,于是就找了小王帮他买。

就不用同学们等待了。

Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序

Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序

<script>ec(2);</script>
了解如何使用 Asynchronous JavaScript™ + XML (Ajax) 和 PHP 在 Web 应用程序中建立聊天系统。您的客户不需要下载或安装任何专门的即时消息通讯软件,就能和您及其他客户讨论网站的内容。

web 2.0 一词出现以来,开发人员都在说社区。不论您是否认为这有点夸大其辞,但让用户或读者能够方便地实时讨论页面主题或者销售的产品,这一想法还是很吸引人的。但是怎么办呢?能否在推销产品的页面中加入聊天,而不必让客户安装任何特殊的软件包括 adobe flash player 呢?当然!实践证明,用免费的现成工具如 php、mysql、动态 html (dhtml)、ajax 和 prototype.js 库就能完全做到。

不再罗嗦了,让我们立即开始吧。 


本文转自:IBM developerWorks 中国
请点击此处查看全文

Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax

Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax

我们今天的关于AJAXajax怎么实现前后端交互的分享已经告一段落,感谢您的关注,如果您想了解更多关于1.(ajaxStart和ajaxSend)和2.(ajaxStop和ajaxComplete)之间有什么区别?、16-Ajax学习之什么是Ajax,Ajax原理、Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序、Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax的相关信息,请在本站查询。

本文标签: