网站开发之AJAX篇

作者: 平安喜乐698 | 来源:发表于2018-04-12 22:30 被阅读19次
目录
    1. 简介
    2. 使用  
        2.1 原生使用
        2.2 JQuery AJAX
1.简介
AJAX(Asynchronous JavaScript and XML) 
    异步JavaScript和XML
    局部更新网页,无需重新加载整个网页
    jQuery解决了AJAX不同浏览器兼容问题
2.使用

2.1 原生使用

var xmlhttp;
if (window.XMLHttpRequest){ 
    // 大多数浏览器 code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}else{
    // 旧版本IE code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

XMLHttpRequest 对象
    AJAX 的基础
    所有现代浏览器均支持

onreadystatechange

/* readyState状态改变后就会调用
readyState
    0: 请求未初始化
    1: 服务器连接已建立
    2: 请求已接收
    3: 请求处理中
    4: 请求已完成,且响应已就绪
*/
xmlhttp.onreadystatechange=function(){
/*
收到响应后的处理方法:
状态文本
    xmlhttp.statusText
请求成功是否状态值(200,404)
    xmlhttp.status  
所有响应头
    xmlhttp.getAllResponseHeaders()
指定的响应头
    xmlhttp.getResponseHeader('Last-Modified')
状态值
    xmlhttp.readyState 见上
*/
  if (xmlhttp.readyState==4 && xmlhttp.status==200){
      // 以字符串形式获取
      xmlhttp.responseText;
      // 以xml形式获取
      xmlhttp.responseXML;      
    }else if(xmlhttp.status==404){  // 路径错误
    }
}

GET

简单也更快

// 设置(请求方式,请求路径,是否异步:绝大多数情况下:true),并发送请求
xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
xmlhttp.send();

POST

在以下情况使用:
    1.无法使用缓存文件(更新服务器上的文件或数据库)。
    2.向服务器发送大量数据(POST 没有数据量限制)。
    3.发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠。

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Bill&lname=Gates");

2.2 JQuery AJAX

$(document).ready(function(){
  $("#b01").click(function(){

  异步请求
  htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
  $("#myDiv").html(htmlobj.responseText);

  开始请求时调用
  $("#txt").ajaxStart(function(){
  });
  请求完成后调用
  $("#txt").ajaxComplete(function(){
  });
  请求出错时调用
  $("div").ajaxError(function(){
  });
  开始请求前调用  
  $("div").ajaxSend(function(e,xhr,opt){
    $(this).html("Requesting " + opt.url);
  });
  AJAX 请求成功后调用
  $("div").ajaxSuccess(function(){
  });
  $("div").ajaxStop(function(){
  });
  请求开始时调用
  $("div").ajaxStart(function(){
  });

  $.ajaxSetup({url:"demo_ajax_load.txt",success:function(result){$("div").html(result);}});
  $.ajax();

  请求并加载js脚本
  $.getScript("demo_ajax_script.js");

  请求json
  $.getJSON("demo_ajax_json.js",function(result){
    $.each(result, function(i, field){
      $("div").append(field + " ");
    });
  });

  以数组形式序列化表单值
  x=$("form").serializeArray();
  $.each(x, function(i, field){
    $("#results").append(field.name + ":" + field.value + " ");
  });

  以字符串序列化表单值
  $("form").serialize()

  以字符串序列化参数(&)
  var params = { width:1900, height:1200 };
  var str = jQuery.param(params);
  });
});

load

    url,获取的数据,获取数据后的回调
    $(selector).load(URL,data,callback);

例:
  $("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){    // 结果内容,状态,XMLHttpRequest对象
    if(statusTxt=="success")
      alert("外部内容加载成功!");
    if(statusTxt=="error")
      alert("Error: "+xhr.status+": "+xhr.statusText);
    });

get

请求数据
$.get(URL,callback);

例:
    $.get("demo_test.asp",function(data,status){
        alert("Data: " + data + "\nStatus: " + status);
    });


post
上传/请求数据
$.post(URL,data,callback);

例:(地址,参数,获得结果后)
    $.post("demo_test_post.asp",{
        name:"Donald Duck",
        city:"Duckburg"
      },function(data,status){
        alert("Data: " + data + "\nStatus: " + status);
      });

避免和其他三方库冲突

var cx = $.noConflict();
cx(document).ready(function(){
  cx("button").click(function(){
    cx("p").text("hello");
  });
});

相关文章

  • 网站开发之AJAX篇

    1.简介 2.使用 2.1 原生使用 onreadystatechange GET POST 2.2 JQuery...

  • 网站开发动静分离实践书目录

    网站开发动静分离实践 网站开发之动静分离的实现思路 网站开发之动静分离的实现优缺点 网站开发之实现案例 网站开发之...

  • 关于AJAX的心得

    如往常一样我们先来了解一下什么是AJAX? AJAX## AJAX 是一种创建交互式网站网页应用的网页开发技术,...

  • Ajax实现页面局部刷新

    最近开发网站,需要实现Ajax实现页面局部刷新,花了2天时间搞定,做个记录 开发环境 WAMP集成开发环境,也就是...

  • AJAX封装函数

    用ajax的局部刷新来给网站提升用户体验我们已经用过很多了,ajax已然成为了前端开发最重要的“工具”之一。 但是...

  • 网站开发之FrozenUI篇

    demo 1. 简介 2. 使用 引入 2.1 按钮 普通按钮 块状按钮 大按钮 2.2 弹窗 通知 类似iOS的...

  • 网站开发之jQuery篇

    jQuerry选择器 1. 简介 2. 使用 2.1. 获取元素(或元素组) 常见 属性相关 input相关 父子...

  • 网站开发之AngularJS篇

    1.简介 2. 使用 2.1 基础 表达式 {{ expression }} 指令 模块 控制器 Scope ...

  • 网站开发之Bootstrap篇

    1.概念 2.使用 引用 2.1 布局 响应式网格系统 表格 列表 2.2. 组件 2.2.1 导航栏 导航栏na...

  • Hbuilder开发集锦

    1.dcloud之网络开发—— like: ajax & html5+ XMLHttpRequest 2.dclo...

网友评论

    本文标题:网站开发之AJAX篇

    本文链接:https://www.haomeiwen.com/subject/mpqqkftx.html