Ajax实例:原生js+thinkphp+ajax

来源:互联网 发布:java.awt 编辑:程序博客网 时间:2024/06/09 23:30

发现很多实例都是jQuery+thinkphp+ajax
所以在这次项目中使用原生ajax的时候遇到的问题查都查不到,是自己一点点调试出来的。
很难忘的一次经历,所以一定要记下来:


先说下ajax技术到底是个什么东东吧。
刚学前端的时候就听说过这个名词,但是项目中一直也没有使用过。
后来有了一些基础之后,知道它是用来和后台交互的,可以实现部分刷新,现在很多复杂的表单填写页面大都会用到ajax技术。
开始找实习以后就在w3chool上看相关知识,实现小demo.也看《高级程序设计》。
前几天终于有机会在自己的项目中使用它,感觉自己进步很多。


ajax全名是:Asynchronous Javascript And XML异步的JavaScript和XML
传统网页中前端拿到后端的数据都是要重新加载页面的,但是ajax使得前端可以只更新部分数据,比如注册的时候,输入用户名,然后点击注册按钮,前端把用户名传给后台,后台发现数据库中已经有这个用户名存在,就会返回【用户名已存在】,这样用户名的input框后面会出现提示【用户名已存在】,而整个页面没有变化
好了废话不多说,先说下ajax在前端实现的过程:

  1. 创建XHR对象
    var xmlhttp;
  2. 实例化XHR对象(分为IE56浏览器和其他浏览器)
    if (window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest(); }
    else{
    xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);}

  3. 发送请求,open方法和send方法
    xmlhttp.open(“GET”,”gethint.php?string=”+str,true);
    open的三个参数分别的是,方式用post还是get,url,同步还是异步的方式,默认是异步的(true),在这一点上我曾经做过一个小试验,也算是自己越到的一个小坑
    string是后台需要get的时候用的名字,str是js中需要发给后台的变量名
    url需要根据后台使用框架的路由规则来写

  4. 监听状态
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
    ……//操作xmlhttp.responseText
    }}

  5. 补充说明:

  6. 还可以设置超时timeout
    可以设置timeout=1000一秒没响应就算超时
    然后调用ontimeout函数处理
    如果想测试自己url写的是不是有问题,可以把url写到地址栏看看

Ajax对很多刚入门前端的人来说可能听起来很复杂,但是多写写就会发现其实并不复杂,关键是在项目中实践,这样会遇到不同的问题,解决掉问题,你就离Ajax女神更进一步啦~

下一个博客就是我在实际应用中遇到的一个关于同步异步的问题。

0 0
原创粉丝点击