• 【Ajax】PHP中ajax的基本知识点


    Ajax常用属性和方法:

    属性:

      readyState: 0(开始创建ajax对象)1(调用open方法)2(调用send方法)3(正在返回数据)4(返回数据结束)

      responseText/responseXML: 接受服务器返回信息

      onreadystatechange: ajax状态readyState发生变化,触发该事件运行

      status:200/404····

    方法:

      open(请求方式,请求地址,同步异步标志):创建一个新的http请求

      send():发送http请求

      setRequestHeader():设置HTTP头协议信息

    get和post请求注意事项:

      (1)get在url中直接传递数据,post在send方法中传递

      (2)传递中文信息时get需要对中文进行编码而post不需要

      (3)进行post方式请求时候,也可以传递get参数信息,在服务器端可以使用$_GET接受

    同步和异步区别:

      同步就是阻塞式,一个IO请求完成之前不能进行下一个,异步则是非阻塞式的,体现形式是在open(请求方式,地址,true异步/false同步)

    缓存处理:

      (1)在请求地址后加随机数字,保证每次请求都是新的

      (2)在服务器端给php程序设置header信息,禁止浏览器缓存当前页面

     实战代码:

      (1)test.html

      <input type="text" id="username" class="input-block-level" placeholder="旧用户名(必须填写)" name="old_username" onblur="checkname()"><!-- 在失去焦点函数中进行ajax请求 -->
      <span id="usernamespan" style="color: #811501;">对不起用户名已存在!</span>
    
        <script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
        <script>
            $(document).ready(function(){
                $("#usernamespan").hide();
            });
            function checkname() {
                var obj = new XMLHttpRequest();//创建ajax对象
                obj.onreadystatechange = function() {//当ajax对象状态发生变化时触发以下事件
                    if(obj.readyState == 4 && obj.status == 200) {
                        if(obj.responseText == '1')
                            $("#usernamespan").show();//如果返回值为1的时候span显示
                    }
                }
                var name = $("#username").val();
                obj.open("get", './ajax.php?username=' + name);//默认为异步请求
                obj.send(null);
            }
    
        </script>

      

      (2)ajax.php

      <?php
      $a = array("tom", "jerry", "marry");//这里没有做与数据库交互,其实做一下也很简单,根据上一篇博客db.php可以很快做出来
      $name = $_GET['username'];//获取get请求内容
      if(in_array($name, $a)) {
          echo '1';
      }else{
          echo "0";
      }

    效果如下:

  • 相关阅读:
    HDU1171(01背包均分问题)
    HDU2159(完全背包)
    HDU1203(01背包变形)
    DAG上的DP
    ADB命令小结
    HDU3065(AC自动机入门题)
    HDU2896(AC自动机入门题)
    性能测试监控分析(13)-sysstat安装升级
    tomcat(9)-linux apache tomcat集群环境搭建
    nginx(4)-负载均衡的5种策略及原理
  • 原文地址:https://www.cnblogs.com/puyangsky/p/5132563.html
Copyright © 2020-2023  润新知