为了理解Ajax技术的基本原理,必须深入了解浏览器发送HTTP请求的方式,在传统的Web应用程序中,浏览器向服务器发送一个HTTP请求,一般有以下两种方式。
(1)在浏览器地址栏中输入网址并回车。这将向服务器发送载入一个页面的请求。如果URL中带有查询字符串,则还会将查询字符串中的数据发送给服务器。
(2)提交表单。这将把表单中的数据发送给服务器并且载入action属性中指定的页面。
这两种方式发送HTTP请求有一个共同点,即无论是输入网址还是提交表单,都会使页面刷新。服务器会返回给浏览器一个完整的页面。
实际上,浏览器向服务器发送HTTP请求,还有第三种方式,即使用XMLHttpRequest对象发送异步HTTP请求。所谓“异步”,是指浏览器与服务器交互过程中(即浏览器发送请求和服务器返回响应的过程),用户仍然可以在浏览器上进行其他一些操作,而不必等待服务器响应完成后才能操作。就好比人们在煮饭的同时仍然可以炒菜一样。
异步方式发送HTTP请求与前两种方式发送HTTP请求有明显的不同。因为服务器返回给浏览器的不再是一个完整的页面,而是一些字符串,所以浏览器不会刷新页面(但为了更新页面上的局部区域,通常把服务器返回的数据载入到页面的某些元素中)。
具体来说,异步方式与传统方式发送HTTP请求的区别可总结如下:
(1)传统方式发送HTTP请求时一个HTTP请求对应一个页面,因此每次发送请求后页面会刷新;而异步方式发送HTTP请求不再对应一个页面,发送HTTP请求后页面不会刷新。
(2)传统方式发送HTTP请求后,由于页面会刷新,因此在刷新的过程(载入服务器返回的页面)中,浏览器处于白屏状态,用户无法在浏览器上进行任何操作;而异步方式发送HTTP请求后,页面不会刷新,因此用户仍然可以继续在浏览器上进行其他一些操作。
在很多时候,使用异步方式发送HTTP请求可以给用户带来很大便利。例如,一个用户注册的网页,服务器需要检查用户输入的用户名是否已经被注册过,这需要查询数据库。如果使用传统方式发送HTTP请求的话,则在“发送HTTP请求->服务器查询数据库->服务器返回查询结果的网页”这个过程中,用户都无法在浏览器上进行任何其他操作;而改用异步方式发送的话,则在“发送HTTP请求->服务器查询数据库->服务器返回查询结果的字符串->载入字符串到某个页面元素中”这个过程中,用户仍然能在浏览器中进行其他一些操作,如继续输入后面的注册项等。
本文均为荣益互联摘自权威资料,书籍,文章,或来自网络,如有版权纠纷或违规问题,请联系我们删除。我们欢迎您的分享,谢绝直接抄袭复制。感谢…