zoukankan      html  css  js  c++  java
  • ajax 的简易上手笔记,及交互模型、交互流程及使用代码示范

    AJAX是Asynchronous Javascript And XML(异步JavaScript + XML)。

    用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

    同步是脚本会停留并等待服务器发送回复然后再继续;异步是脚本允许页面继续其进程并处理可能的回复。同步就是整个页面都刷新,而异步是只刷新用了Ajax技术的部分。

     
    AJAX的交互模型:
    是Ajax在Browser端引入一个执行引擎,它一边应付user的请求,一边把某些必须交给服务器处理的东西背地里传送给服务器,同时背地里把服务器的结果准备好(接受服务器端的数据),展现给客户的技术模式。这样增强了用户的操作性。
     
    AJAX的交互流程:
    1、启动,获取XMlHttpRequest对象,这时需要兼容浏览器
    2、open,打开url通道,并设置异步传输 
           open(method,URL,async),method有get或post,URL是请求资源的地址,async表示是否异步请求
             setRequestHeader(header,value)向请求添加http头部
    3、send,发送数据到服务器
             send(string),method为post
    4、服务器接受数据并处理,处理完成后返回结果
             返回responseText,responseXML形式的数据。一般是responseText
    5、客户端接收服务器端返回
            这个阶段有onreadystatechange,readyState,status三个属性
        当readyState属性改变时,就会调用onreadystatechange函数
            readyState存有XMLHttpRequest的状态0-4
              0:请求未初始化
              1:服务器连接已建立
              2:请求已接收
              3:请求已处理
              4:请求已完成,且响应已就绪
            status:200ok,404未找到页面
    只有当readyState == 4 && status == 200时,表示请求成功
       
     代码示范:
     1 (function () {
     2             var btn = document.getElementById('test');
     3             btn.onclick = function () {
     4                 ajax('0821-a.txt', function (str) {
     5                     alert(str);
     6                 });
     7             };
     8             function ajax(url, success, fail) {
     9                 var xhr = null;
    10                 if(window.XMLHttpRequest) {
    11                     xhr = new XMLHttpRequest();
    12                 }else {
    13                     xhr = new ActiveXObject('Microsoft.XMLHTTP');
    14                 }
    15                 xhr.open('get', url, true);
    16                 xhr.send(null);
    17                 xhr.onreadystatechange = function () {
    18                     if(xhr.readyState == 4) {
    19                         if(xhr.status == 200) {
    20                             success(xhr.responseText);
    21                         }else {
    22                             fail && fail(xhr.status);
    23                         }
    24                     }
    25                 };
    26             }
    27         })();

     喜欢就点赞吧<( ̄︶ ̄)>

     
  • 相关阅读:
    【BOM】浏览器对象模型
    【版本管理】自定义git
    【版本管理】多人协作及标签管理
    【版本管理】git分支管理
    【版本管理】git远程管理
    待补的坑
    pip下载如何加速
    2017ICPC南宁M The Maximum Unreachable Node Set (偏序集最长反链)
    Petrozavodsk Winter-2018. AtCoder Contest. Problem I. ADD, DIV, MAX 吉司机线段树
    Codeforces 1221F Game With String 思维题
  • 原文地址:https://www.cnblogs.com/kino156/p/6250153.html
Copyright © 2011-2022 走看看