简单说说AJAX

AJAX即“Asynchronous Javascript And XML”
异步 JavaScript 和 XML

解释:通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

说人话的表达就是:当你对一个页面中的某个元素进行操作后,页面中的另外某一部分产生了变化,而不是整个页面刷新,速度上快了不少。这是AJ的解释,也就是Asynchronous Javascript (异步javascript)的意思,如果是与数据库进行交互,就再加上AX(And XML)。

1、先说AJ ,如果年月日的文本框是一开始就存在的,那么就是普通的javascript应用,如果一开始没有文本框,而是在输入完身份证后才多出来个文本框,那就是AJ(异步javascript)了。看代码,这段代码的意思是当选了年月后,根据是否闰年及是否2月来改变可选的天数,毕竟,2月份的可选日子不能出现30。代码位于里

<script type="text/javascript">
function get_day()    //无论年月日三个列表哪个被动了,都执行这个功能
{
var nian=document.getElementById("year").value;        //取年的值
var yue=document.getElementById("month").value;        //取月的值
var mday=0;
if (yue==2)        //如果是2月
{
if ((nian%4==0 && nian%100!=0) || nian%400==0)        //判断是否闰年,能被4整除且不能被100整除,或能被400整除的是闰年
{
mday=29;        //闰年2月29
}
else
{
mday=28;        //平年2月28
}
}
else if (yue==1 || yue==3 || yue==5 || yue==7 || yue==8 || yue==10 || yue==12)        //1、3、5、7、8、10、12:31天永不差
{
mday= 31;
}
else
{
mday= 30;        //只剩下4、6、9、11:30整
}
txt=""        //准备一个空字符串,留着写html代码用
for (i=1;i<=mday;i++)        //有几天就写几个
{
txt=txt+"<option value=\""+i+"\">"+i+"</option>";        //html里的列表选项,值与显示的值对应
}

document.getElementById('day').innerHTML=txt;        //id为day的列表里要替换的内容,
 /*
我个人认为document.getElementById('day').innerHTML是AJ的核心语句,document.getElementById("year").value只能给html里已有的元素赋值,而document.getElementById('day').innerHTML甚至能写出整个网页
*/ 
}
</script> 

重要的事再说一遍,我认为document.getElementById(‘day’).innerHTML才是AJ的核心,而当内容是从数据库服务器调取的时候,只需要将=右边的内容替换为从服务器返回的包含数据库数据的html代码即可,这就是全面AJAX了。那怎么实现呢?

=============================

2、完整的AJAX
完整的AJAX技术的核心语句是

document.getElementById('。。。').innerHTML=xmlHttp.responseText

document.getElementById('。。。').innerHTML=xmlHttp.responseXML

返回的是XML数据,就用第二个,其余用第一个。
xmlHTTP是一个特定的对象,对象类是XMLHttpRequest()
xmlhttp=new XMLHttpRequest();
大致原理就是xmlhttp向一个网页发送打开请求,而这个网页经过一系列动作后,或显示计算结果,或显示数据库的查询结果,返回给xmlhttp,再经过document.getElementById('。。。').innerHTML=xmlHttp.responseText显示在当前网页上。
放出一个链接,里面有详细讲解。http://www.phpstudy.net/e/php/php_ajax_database.html

javascript不能直接访问数据库,必须通过上面的形式“曲线救国”。javascript访问数据库的思路是:javascript 调用一个专门访问数据库的php文件,并得到其返回值,该值可以是:一个字符、数据库数据、甚至是整个网页.详细教程见链接:http://www.runoob.com/php/php-ajax-database.htmlhttp://www.runoob.com/php/php-ajax-database.html

这样做的最大好处是,不会在javascript文件里暴露连接服务器的信息.

需要注意的是异步或同步的问题.

<script>
function showSite(str)
 { 
   if (str=="") {document.getElementById("txtHint").innerHTML="";        return;    } 
    if (window.XMLHttpRequest) 
   { 
       // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 
       xmlhttp=new XMLHttpRequest(); 
   }    else    { 
       // IE6, IE5 浏览器执行代码 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
   } 
   xmlhttp.onreadystatechange=function() 
   { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
           document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
       } 

} 
   xmlhttp.open("GET","getsite_mysql.php?q="+str,true); 
   xmlhttp.send();}
</script>

注意: xmlhttp.open(“GET”,”getsite_mysql.php?q=”+str,true) 里的true,代表的是异步的意思,异步的好处是可以先执行后面的语句,等结果返回后再显示出来.但是,有事我们也需要同步执行,比如在询问某用户是否超期了,或者是否在其他地方同时登录了的时候,就需要用到同步了,当只有返回肯定的答案时,才进行下一步.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值