以前在一些网站自学ajax时的时候,总是不明白,凭什么我ajax请求后,就能收到消息?在没有ajax之前,页面的刷新都是全部更新的,而有了ajax后,我们可以做到局部更新而不必页面的重新请求,这种轻量级的更新方式带来的好处是显而易见的:对网页浏览者来讲快捷方便,节约时间;对开发者来讲,维护起来更轻松,不必牵一发而动全身的针对整个页面;对服务器来讲,ajax请求的带来的压力会远远小于整个页面刷新给服务器的负荷。好了,那么ajax到底是怎么请求的,类似与w3c和菜鸟等自学网站都没有真正的实力,只是展示可以ajax请求,后台代码没有,给初学者带来了很大的困难。
以一个用asp.net页面为例:
public static string SayHello()
{
return "Hello Ajax!";
}
$(function() {
$("#btnOK").click(function() {
$.ajax({
//要用post方式
type: "Post",
//方法所在页面和方法名
url: "data.aspx/SayHello",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的数据用data.d获取内容
alert(data.d);
},
error: function(err) {
alert(err);
}
});
//禁用按钮的提交
return false;
});
});
这样子我们可以很清楚的看到ajax的流程:点击(click)事件触发了JavaScript,然后启用ajax,ajax根据URL去找后台的处理的方法,也就是sayhello(),把sayhello()方法的执行结果返回到页面。这个请求方式是不是和整个页面刷新同根同源呢?只要理解了其中一个,另一个就很好理解。
再说说URL吧,统一资源定位符,在学计算机网络的时候不能理解,现在就醍醐灌顶了:所有的资源在服务器里面,你看到的网页给你很多个选择,你根据自己的需求选择好了,提交,然后就可以到服务器里面找了。比如说服务器有语,数,外三个资源,在页面上就有语,数,外三个资源对应的请求路径,你点击语文的下载肯定会下载到语文的资源,不会是其他的(下载在就是一个简单select SQL语句)。
那么,很多网站在注册时不允许用户名重复,那么ajax请求在后台的执行代码(抛开编程语言,仅说SQL语句)是什么样子的呢?不会的自己想想咯,很简单的。