欢迎来到天天文库
浏览记录
ID:39794110
大小:264.34 KB
页数:27页
时间:2019-07-11
《中国科大Ajax编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Ajax编程技术第三章Ajax和服务器端技术3.1概述如果只使用XMLHttpRequest更新页面,而不使用任何来自服务器输入的技术,不能称之为Ajax。使用Ajax的最大优势之一就是,可以为Ajax应用程序选择自己偏爱的服务器端技术,如ASP.NET,PHP,Java等。对于每种服务器端技术来说,Ajax读取XMLHttpRequest对象与服务器通信的方式基本上是相同的,但服务器接收到信息后的处理方式就个不相同了。3-3.2Ajax和服务器端技术表单和HTML控件Ajax并未改变HTML控件的
2、工作方式和从其获得数据的方式,服务器也采用以往的方式来接收它们。但是有两个问题:调用服务器端页面的方式;HTML表单完全从页面中删除或修改后,不能按预期方式工作。我们分别解释。3-3.2Ajax和服务器端技术传统的表单的提交模型提交表单的做法通常是建立一个带有按钮的表但,用户输入完数据后单击按钮后,就将此表单提交给服务器。传统的ASP和PHP使用表单的ACTION属性将用户从原始页面重定向到响应页面。该处理是在用户被重定向新页面之前在服务器上完成,新页面用来显示相应的响应数据。
3、m>ButtonRequest.php服务器返回数据Response.php服务器进行处理用户单击按钮提交数据服务器返回数据浏览器显示的原始页面提交后浏览器重新定向的页面3-3.2Ajax和服务器端技术在Ajax之前,我们使用的都是这种传统的提交、重定向模式;而Ajax提出了使用脚本提交页面的思想。Ajax/JavaScript提交模型Ajax使用的JavaScript提交模型在以前传统的提交模型基础上进行了变化。在此模型中,表单可以可选地从模型中删除。这种新的模型使用JavaScript截取事件调
4、用,当该事件发生时(如用户单击提交按钮),提交的数据传递给对应的脚本,然后有脚本发起对服务器的调用。脚本甚至不必马上提交数据,可以继续等待其它条件也满足后再提交数据。在该模型中,因为脚本可以立即响应事件且不必等待数据的提交,所以从服务器返回的数据也不必马上显示给用户,而脚本也不必像以前一样被动等待服务器的响应。3-3.2Ajax和服务器端技术Default.htm服务器端进行处理Response.php事件发生脚本到服务器浏览器显示的页面部分页面更新服务器返回数据Jscr
5、ipt.js3-3.3服务器端的情况javaScript用来启用客户机/服务器之间的交互。C/S中的服务器端会接收来自HTTP请求的数据,然后处理数据,再以服务器响应所采用的格式返回数据。向服务器提交数据Ajax使用XMLHttpRequest对象向服务器提交数据,这一过程分三个步骤:设置事件在接收数据时触发;随请求一起调用open方法;发送请求。3-3.3服务器端的情况提交使用格式XMLHttpRequest.opwn(method,URLtocall,asynchronousorsynchron
6、ous);其中Method:有两种方式,GET、POST:用GET方式:XMLHttpRequest.open(“GET”,“Reponse.php&value=1”,“true”);xHRObject.send(null);用POST方式:varargument=“value=“;argument+=encodeURIComponent(data)XMLHttpRequest.open(“POST”,“Reponse.php”,“true”);xHRObject.send(argument);3-
7、3.3服务器端的情况服务器接收请求JavaScript使用XMLHttpRequest对象的POST或GET方法,将数据封装到URL或Request中,向服务器提交数据。在PHP中,可以使用$_GET、$_POST、$_REQUEST收集客户机传上来的数据。在ASP、ASP.NET中,可以使用QueryString、Form或Params收集客户机传上来的数据。从HTML表单接收数据和从源自JavaScript的请求接收数据没有差别。服务器获得数据后,就可以按照自己的方式进行处理,然后将处理结果返回
8、给客户端。3-3.4编写HTTP响应与传统的服务器端技术所使用的事件顺序不同,在Ajax中,用户要显示的信息无法立即写到页面中。取而代之的是,必须将信息封装在HTTP响应中。办法很简单:在PHP中,可以使用echo命令:$data=“Thisisourdata.”;echo$data;在ASP或ASP.NET中,可以Response.Write方法:stringdata=“Thisisourdata.”;Response.Write(data);3-3.4编写HTTP
此文档下载收益归作者所有