77家的会客2010

Ajax首试,成功
Weather:晴 ,南风 3-4级 ,最低气温23 ℃

  今天台湾的j2eemx.com站长Bing在我下班的时候和我聊天,谈了一下交换链接的事情,他提议说能不能把链接放在首页,我答应了;于是就想,如果放在首页的话,那么不可能就放一个吧,就要把友情链接里的的推荐网站(目前没有特别标识出来)都出现在首页,但问题又来了,首页打开肯定就慢了。

  为了不影响首页的打开速度(毕竟首页的速度给新客户是最关键的嘛),于是打算采用AJAX进行异步读取数据。试了一晚上,终于让其在IE以及Firefox下都可以顺利打开,对xmlhttp的简单应该也有了进一步的使用了解。

  贴出xmlhttp的一些相关参数给大家共同学习吧。

XMLHttpRequest 对象方法

方法 描述
abort() 停止当前请求
getAllResponseHeaders() 作为字符串返问完整的headers
getResponseHeader("headerLabel") 作为字符串返问单个的header标签
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL, 方法, 和其他参数
send(content) 发送请求
setRequestHeader("label", "value") 设置header并和请求一起发送

XMLHttpRequest 对象属性
属性 描述
onreadystatechange 状态改变的事件触发器
readyState 对象状态(integer):
0 = 未初始化
1 = 读取中
2 = 已读取
3 = 交互中
4 = 完成
responseText 服务器进程返回数据的文本版本
responseXML 服务器进程返回数据的兼容DOM的XML文档对象
status 服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"
statusText 服务器返回的状态文本信息

注:asyncFlag:一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作

当xmlhttp的open方法为get的时候,就不需要发送数据,所以设置为xmlhttp.send();或是xmlhttp.send(null);

而当为post的时候,那就xmlhttp.send(strBody);并且如果为post的话,必须要设置Header,如

xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

历史上的今天: [2012/07/26]Lotus Notes中C/S模式下进度条的使用

[Ajax首试,成功]的回复

秦歌 于 2005-07-28 16:25:55 发表 | IP:218.106.169.*

恭喜恭喜,嘿嘿,红包拿来。

Minisheep 于 2005-07-31 12:23:09 发表 | IP:218.71.53.*

原来这就是Ajax……只不过 XMLHttpRequest换个名字而已

但在FireFox等Gecko内核下,由于安全性而不能读取其他服务器上的页面,这就有点不爽了。

柠檬园主 于 2005-07-31 12:41:41 发表 | IP:210.83.202.*
ajax只是主要利用xmlhttp而不是说ajax就是xmlhttp,ajax是代表的一种综合的方法,这要求xmlhttp和js甚至是xml进行配合,如果没有js那么xmlhttp是没办法做出这种无刷新的效果的。
可以试下本blog的日历功能。
4#   柠檬园主 于 2005-07-31 13:00:39 发表 | IP:210.83.202.*

另外就是你说的跨域存取的问题,我觉得为了安全的话,可以放弃那个功能,其实跨域存取主要还是方便了类似新闻小偷一类的程序,自己的网站上或是同一个域内的存取就不存在这个问题,所以说在一个域内的ajax的应用是很好的选择,很成功的例子如msn spaces,它的回复部分以及相册部分都用得很成功。

我这里的只是简单的应用,也就是从服务器端取数据,还未试验向服务器端发送数据,我打算开通留言本功能,而留言本的内容发送就采用ajax来实现。

Post a Comment~