zoukankan      html  css  js  c++  java
  • Ajax学习笔记(2) 一定要用XML吗?

    Ajax一定要用XML吗?我觉得不一定用。

    不用XML的理由:
    1. javascript脚本解析Xml比较慢;
    2. 对于一些简单数据,用Xml有点大炮轰蚊子的感觉;
    3. XmlHttp提供了responseText,就是给了大家不用Xml的方便;

    不用Xml用什么?
    可以采用技术很多,对于简单数据你可以返回自定义的数据格式,比如,第1位是状态位,第2位之后是数据。对于复杂数据,你甚至可以直接返回javascript脚本,然后用eval执行。

    在最近写的一个无刷新聊天程序中,我就使用了直接返回javascript脚本的方式,下面是自动获取消息的部分代码。

    var xmlhttp=createXH();
    function checkMsg(){
      xmlhttp.open('Get', 'Message/CheckNew.aspx', true);
      xmlhttp.onreadystatechange=continueCheckMsg;
      xmlhttp.send('');
    }

    function continueCheckMsg(){
      if(xmlhttp.readyState==4){
        var rt=xmlhttp.responseText;
        if(rt!=''){
          var msgs=eval(rt);
          // ... 接下来就是处理消息分发
        }
      }
      setTimeout('checkMsg()', 10000); // 每隔10秒刷新一次
    }

    说明:
    1. rt=xmlhttp.responseText返回新消息的数据,当没有新消息时,返回空;当有新消息时(可以使多条),返回的内容格式如下:
    [['发送人1','发送时间1','消息内容1'], ['发送人2','发送时间2','消息内容2'], ...]
    2. 通过var msgs=eval(rt)后,msgs就是存放了n条消息的二维数组,然后按二维数组的方式处理就可以了;

    最后,收集了一篇比较有用的文章,里面对使用Xml有详细介绍:
    http://www.dragonson.com/doc/ajax.html

  • 相关阅读:
    E. 因数串
    三点共圆公式
    B-Suffix Array
    线段树求解连续区间问题
    E. Quantifier Question (拓扑排序求前驱和后继)
    CF1344B Monopole Magnets
    Multiset (权值线段树模版)
    459. 重复的子字符串 next数组
    6.21笔试小结
    canva学习笔记
  • 原文地址:https://www.cnblogs.com/rrooyy/p/219514.html
Copyright © 2011-2022 走看看