龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

AJAX和XmlHttpRequest下的Web开发(1)(3)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
来看看到底要怎么才能发送请求 使用XMLHttpRequest对象发送请求的基本步骤如下: 1.得到XMLHttpRequest对象实例的一个引用,为此,可以创建一个新的实例,也

来看看到底要怎么才能发送请求

使用XMLHttpRequest对象发送请求的基本步骤如下:

1.得到XMLHttpRequest对象实例的一个引用,为此,可以创建一个新的实例,也可以访问包含有XMLHttpRequest实例的一个变量。

2.告诉XMLHttpRequest对象,哪个函数会处理XMLHttpRequest对象状态的改变。为此要把对象的onreadystatechange属性设置为指向一个JavaScript函数的指针。

3. 指定请求的属性。XMLHttpRequest对象的open()方法会指定将发出的请求。open()方法取3个参数:一个是指示所用方法(通常是GET或POST)的串,另一个是表示目标资源URL的串,还有一个Boolean值,指示请求是否是异步的。

4. 将请求发送给服务器。XMLHttpRequest对象的send()方法会把请求传送到指定的目标资源。

send()方法接受一个参数,这通常是一个串或一个DOM对象。这个参数会作为请求体的一部分传送到目标URL.向send()方法提供参数时,要确保open()中指定的方法是POST。如果没有数据要作为请求体的一部分发送,则使用null。

异步方式给用户带来的体验:(我想程序员看到这段解释,心里真的很爽!)

对服务器的请求是异步发送的,因此浏览器可以继续响应用户输入,并在后台等待服务器的响应。如果选择同步操作,而且倘若服务器的响应要花好几秒才能到达,浏览器就会表现得很迟钝,在等待期间不能响应用户的输入。这样一来,浏览器好像被冻住一样,无法响应用户输入,而异步做法可以避免这种情况,从而让最终用户有更好的体验,尽管这种改善很细微,但确实很有意义。

这样用户就能继续工作,而且服务器会在后台处理先前的请求。能与服务器通信而不打断用户的工作流,这样就可以采用很多技术来改善用户体验。例如,假设有一个验证用户输入的应用。用户在输入表单上填写各个域时,浏览器可以定期地向服务器发送表单值来进行验证,此时并不打断用户,他还可以继续填写余下的表单域。如果某个验证规则失败,用户会立即得到通知,而不必等表单真正发送到服务器进行处理时才知道有错误,这就能大大节省用户的时间,也能减轻服务器上的负载压力,因为不必在表单提交不成功时完全重建表单的内容。

下面是说明安全问题的:

XMLHttpRequest对象要受制于浏览器的安全“沙箱”。XMLHttpRequest对象请求的所有资都必须与调用脚本在同一个域(domain)内。这个安全限制使得XMLHttpRequest对象不能请求脚本所在域之外的资源。这个安全限制的强度如何因浏览器而异(见图2-5)。Internet Explorer会显示一个警告,指出可能存在一个安全风险,但是用户可以选择是否继续发出请求。Firefox则会断然停止请求,并在JavaScript控制台显示一个错误消息。Firefox确实提供了一些JavaScript技巧,使得XMLHttpRequest也可以请求外部URL的资源。不过,由于这些技术针对特定的浏览器,最好不要用,而且要避免使用XMLHttpRequest访问外部URL。

XMLHttpRequest成员

属性:

 
* 表示此属性是W3C文档对象模型的扩展.

方法:

  1. PHP成为中国应用最广的Web开发语言
  2. 新一代Java Web开发框架JSF访谈实录
  3. 如何选择最为合适的Web开发框架
  4. 热门Web开发方式 REST实现原理浅析
精彩图集

赞助商链接