phpajax,第一个Ajax Demo

一。核心推动力:XMLHttpRequest对象
XMLHttpRequest对象在javascript中创建并使用,客户端可以仅仅从服务器端获取它需要的信息:通过与DOM和CSS的结合,就可以实现局部刷新的效果;同时还可以通过XMLHttpRequest对象异步提交信息,将用户的输入在后台提交到服务器所在而无需刷新这个页面。XMLHttpRequest催生了Ajax概率的诞生,称它是Ajax的核心推动力毫不为过。
二。还是来个实际点吧,看个例子。
首先用XMLHttpRequest对象实现
1。新建一个空网站,AjaxWeb。添加页面Default.aspx,Default.aspx源码如下:
1 2
3 4 5 8 9 10 13 16 17 18 20 23 24 25 28 32 33
6 Ajax实现局部刷新 7
11 填写城市名称: 12 14 15
19 21 ="getData();" /> 22
26 选择区域列表: 27 29 31
34
35
2。js代码
1
这段js在IE中运行正常,但是在FireFox里测试存在几个问题:
xmlhttp.Open is not a function:Open改成open就可以了,这是因为IE中区分大小写没那么严格,但是FireFox是严格区分大小的。所以为了js代码能更好的兼容各种浏览器,最好区分大小写。 xmlhttp.Send is not a function:同上一个错误一样,将Send改成send即可。
xmlhttp.readystate is undefind:类似错误,readystate应该为readyState
uncaught exception: [Exception... "Not enough arguments" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://localhost:4761/AjaxWeb/Default.aspx :: FillData :: line 38" data: no]:这个错误的原因是document.getElementById("selAreas").add(new Option(strcitys[i], strcitys[i]))中的add方法不是通用方法,应该改成:document.getElementById("selAreas").options.add(new Option(strcitys[i], strcitys[i])); 3。还有一个页面:datapage.aspx,源码就一句:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="datapage.aspx.cs" Inherits="datapage" %>
后台代码:
protected void Page_Load(object sender, EventArgs e) { string city = Request.QueryString["city"]; Response.Clear(); switch (city) { case "beijing": Response.Write("朝阳,海淀,东城,西城"); break; case "shanghai": Response.Write("浦东,静安,虹口,徐汇"); break; case "jinan": Response.Write("历下,历城,市中,天桥"); break; } }
至此,通过XMLHttpRequest对象实现无刷新的功能全部完成。
Tags: 

延伸阅读

最新评论

发表评论