精华内容
下载资源
问答
  • 异步通信和同步通信

    千次阅读 2014-01-19 11:11:30
    同步通信 编辑 ...相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意
    
    

    同步通信
    同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
    相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。

    没有数据发送时,传输线处于MARK状态。为了表示数据传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当发送方和接收方达到同步后,就可以一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。采用同步方式传送数据时,在发送过程中,收发双方还必须用一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接收方可利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。

    常用的芯片有8251、8274、mc6850以及支持FREESCALE的POWERPC核的CPU。同步通信实现的硬件和软件成本较高,也是同步通信未广泛应用的原因之一。

    变电站时钟同步通信技术是基于IEEE1588标准中的PTP精确时钟同步协议来进行的。
    异步通信
       异步通信是一种很常用的通信方式。相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。异步通信在有限信道中传输效率高,缺点是设备复杂、信道利用率较低(因为开始位和停止位的开销所占比例较大),但随着光网络的发展,这些已不是根本问题。
           异步通信也可以是以帧作为发送单位。接收端必须随时做好接收帧的准备。这时,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。

         异步通信与同步通信
         异步通信与同步通信的特点
          MQ 在支持同步通讯的同时,提供了基于消息队列存储 - 转发机制的异步通讯模式,应用程序只需将消息交给 MQ,就由 MQ 负责将消息安全、可靠地发送出去,不再需要应用和人工的干预,真正实现了数据传输自动化,这一特点能够使应用程序独立于通信对方和网络的可用性。与我们常见的同步通信相比,异步通信模式有以下特点:
          通信的达成只依赖于发送方和消息中间件,接收方以及网络的意外情况不造成影响。
          因为不必实现同步握手,异步通信通常效率更高。
          因为不必等待响应,异步通信倾向于实现更短的交易处理,节省系统资源占用。
          异步通信有利于提高系统并发度,提高系统吞吐能力。
          异步通信有利于实现松散耦合的系统结构。
          与异步通信相比,同步通信想法更为简单而且更容易实现――发起方在系统中等待直到对方响应,这样可以避免复杂的发送 / 确认 / 重传机制的设计,但同时也造成了低效率和对资源占用大的缺点,同步通信目前是一种常见的廉价通信实现方式。
           需要说明的是这里谈论的同步 / 异步是底层消息传输的模式,与其最终提供的服务模式无关:同步业务服务可以通过同步通信实现,也可以通过异步通信实现。比如我们常见的电话业务,一般我们都认为是一种同步的服务,但电信公司实际实施时,如果是通过交换机,在通话双方之间建立一个电路连接,那就是一种同步通信实现;如果电信公司采用的是 IP 电话,通过网络把声音打成若干数据包在 Internet 上发送,在收话方没有感觉到的时间内再按顺序组合把语音还原出来,那就是使用的异步底层通信实现。我们进行应用方案设计时要充分意识到两种通信模式的特点,考虑各种选择的可能性和优劣。
         异步通信实现同步应用设计
         由于同步 / 异步通信有各自的特点,所以通过异步通信来实现同步应用时,有一些特殊的方法需要考虑。异步通信基础上实现同步应用,是通过若干异步消息分段实现的,以最简单的双方模式为例,A 发送给 B 一个异步消息,B 接收后完成特定处理,再返回给 B 一个异步消息,如果这个处理过程足够快,就能够实现一个请求 / 应答模式的同步应用。这种模式下,应用中 UOW 的范围,和同步应用下是有很大不同的,应用设计中要充分考虑到这种区别。
           在同步模式下,在 A 和 B 的所有操作都可以放在一个 UOW 中,通过两阶段提交协议实现数据一致;在异步模式,应用会分成几个 UOW,第一个是应用程序在本地队列管理器中的操作,第二个是两个队列管理器间的数据传输,这个 UOW 是系统完成的,对于应用是透明的,第三个 UOW 是远程应用在远程队列管理器中的操作。应用设计时要充分意识到这些区别。
            由于交易一致性控制,一个 MQ 应用中在队列中进行的改变,只在它 COMMIT 后,其他应用程序才能看到,所以在进行请求 / 应答模式的 MQ 应用程序中,请求程序发送请求消息后,要在适当的位置下 COMMIT,完成这个 UOW,然后在到应答队列里去等待对方完成 UOW 后的返回。应答程序也要与请求程序类似,也要合理地控制 UOW 的范围,使得返回消息能够恰当地被请求程序得到。
            在使用 MQ 进行要求同步通讯的程序设计时,会碰到原来可能会做单一 UOW 的应用,在 MQ 下的异步应用设计下要划分成若干个 UOW,这就涉及到如何在多 UOW 下保证数据整体的一致性。这种需求,一般可以通过合理的冲正设计来实现。



    展开全文
  • 同步通信 VS 异步通信

    万次阅读 2013-08-29 11:51:59
    在描述同步通信与异步通信之前,我们先得搞清串行通信的内涵。串行通信是指计算机主机与外设之间,以及主机系统与主机系统之间数据的串行传输。使用串口进行数据传输时,发送和接收的每一个字符实际上都是一次一位的...

        在描述同步通信与异步通信之前,我们先得搞清串行通信的内涵。串行通信是指计算机主机与外设之间,以及主机系统与主机系统之间数据的串行传输。使用串口进行数据传输时,发送和接收的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。而同步通信与异步通信则是串行通信的两种不同方式,分别适合于不同的场合,且各有优缺点。

    • 同步通信

        同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息,由同步字符、数据字符和校验字符(CRC)组成。其中:

        1. 同步字符:位于帧的开头,用于确认数据字符的开始;

        2. 数据字符:在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;

        3. 校验字符:有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

        当接收端确认接收到同步字符后,便在同步时钟的控制下逐位发送/接收。

    图1  同步通信格式

        下面以IBM的BSC协议进一步进行说明,该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。

        其格式为

    SYN

    SOH

    标题

    STX

    数据块

    ETB/ETX

    块校验

      (1)SYN:同步字符(Synchronouscharacter),每帧可加1个(单同步)或2个(双同步)同步字符。

      (2)SOH:标题开始(Start of Header)。

      (3)标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。

      (4)STX:正文开始(Start of Text)。

      (5)数据块:正文(Text),由多个字符组成。

      (6)ETB:块传输结束(End of TransmissionBlock),标识本数据块结束。

      (7)ETX:全文结束(End of Text ),全文分为若干块传输。

      (8)块校验:对从SOH 开始,直到ETB/ETX 字段的检验码。

    • 异步通信

        异步通信,是以字符或者字节为单位组成字符帧进行传输。字符帧格式中包括空闲位、起始位、资料位、奇偶校验位、停止位。

        以RS232协议规定为例,异步通信一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始(低电平,逻辑值0),以“停止位”结束,字符之间没有固定的时间间隔要求。字符数据本身由5~8位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿,如图:

    图2 异步(RS232)通信格式

        接收端在收到起始信号之后只要在一个字符的传输时间内能和发送端保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准,也就是说,异步通信依靠检测起始位来实现发送端与接收端的时钟自同步。这样,只要发送端和接收端协商好字符帧格式和波特率,就可以由各自的时钟来控制数据的发送和接收。

    • 小结

     

    同步通信

    异步通信

    传输格式

    面向比特的传输,每个信息帧中包含若干个字符

    面向字符的传输,每个字符帧只包含一个字符

    时钟

    要求接收时钟和发送时钟同频同相,通过特定的时钟线路协调时序

    不要求接收时钟和发送时钟完全同步,对时序的要求较低

    数据流

    发送端发送连续的比特流

    发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节

    控制开销

    控制字符开销较小,传输效率高

    字符帧中,假设只有起始位、8个数据位和停止位,整个字符帧中的控制位的开销就达到了20%,传输效率较低

    同步方式

    从数据中抽取同步信息

    通过字符起止的开始位和停止位抓住再同步的机会

    通信结点

    点对多点

    点对点

       




    展开全文
  • 异步通信和同步通信简单对比

    千次阅读 2016-12-14 15:05:57
    异步通信和同步通信简单对比

    作者:华清远见讲师

    数据通信中常用的两种通信方式是:

    同步通信

    所谓同步,就是要求通信的收发双方在时间基准上保持一致

    异步通信

    ● 异步传输:(起止式异步通信方式)---用于低速设备

    是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此同步传输。

    实现数据异步传输又称为起止式异步通信方式,其优点是简单、可靠,适用于面向字符的、低速的异步通信场合。

    特点:

    字符(字节)为单位传输!

    ● 同步传输:(区块传输)----- 用于高速设备

    是以数据块为传输单位。

    每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),

    以便对数据块进行差错控制。

    所谓同步传输是指数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。

    特点:

    数据块为单位传输,数据块的"头部"和"尾部"都要附加一个特殊的字符或比特序列,标记数据块的开始和结束!

    同步传输是以同步的时钟节拍来发送数据信号的,因此在一个串行的数据流中,各信号码元之间的相对位置都是固定的(即同步的)。

    在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。

    在传送数据时,需先送出2个同步字符,然后再送出整批的数据。如图:

    1byte 1byte 1byte 1byte

    ▏Sync ▏Sync ▏Data block ▏BCC ▏EOB ▏

    Sync:同步字符

    Data block:数据区块

    BCC:区块检查字符

    EOB:区块结束字符

    同步传输(Synchronous Transmission):同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,

    而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。

    数据帧的第一部分包含一组同步字符(如:i2c的起始位),它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方

    一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。

    帧的最后一部分是一个帧结束标记(如I2C的结束位)。与同步字符一样,它也是一个独特的比特串,类似于前面提到的停止位,用

    于表示在下一帧开始之前没有别的即将到达的数据了。

    下图为一张I2C同步通信协议的时序图


    I2C 设备的接线引脚中 会有SCL(图中绿色标记的部分)这样的引脚 ---表示 同步时钟


    UART(通用的异步收发器) 通常是下面这些接线,可以看到是没有时钟线的!

    TXD --- 传输引脚

    RXD --- 接收引脚

    GND --- 地线

    异步传输与同步传输的区别:

    ● 异步传输是面向字符传输的,而同步传输是面向位传输的。

    ● 异步传输的单位是字符,而同步传输的单位是大的数据块。

    ● 异步传输通过传输字符的“起止位”和“停止位”而进行收发双方的字符同步,但不需要每位严格同步;而同步传输不但需要每位精确同步,还需要在数据块的起始与终止位置,进行一个或多个同步字符的双方字符同步的过程。

    ● 异步传输相对于同步传输有效率低、速度低、设备便宜、适用低速场合等特点。

    补充:

    异步传输和同步传输的区别:

    ● 收发两端对时间的精确度要求高低而已。

    ● 同步要求高,异步没有同步要求那么高。

    ● 异步: --- 发送端 可以任意时刻发送字符,不需要同步步调,发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。

    ● 同步: --- 发送端 需要同步时钟信号,"同步通信"的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。

    ● 两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。

    ● 另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。

    展开全文
  • JavaScript Ajax实现异步通信

    千次阅读 2016-12-14 14:38:31
    JavaScript Ajax实现异步通信笔记

    JavaScript Ajax实现异步通信

    一、浏览器与服务器的同步和异步通信
    1.同步:是阻塞的,浏览器在向服务器发送请求之后一直等待服务器的响应,而没有做其他事情。
    2.异步:非阻塞的,浏览器向服务器发送请求之后,继续执行其他代码,知道服务器响应,浏览器
    中断当前的任务,处理服务器响应。

    二、传统页面同步刷新

    1.html页面

    <form action="../testphp/sync.php" method="get">
        <input type="text" name="name">
        <input type="password" name="password">
        <input type="submit" value="提交">
    </form> 

    2.php页面

    <?php 
    header('Content-type:text/html;charset=utf-8');
    $username = $_GET['username'];
    $password = $_GET['password'];
    $flag = 1;
    /*将页面跳转到原来页面,flag标志为了告诉前端请求响应的情况*/
    header('location:../testhtml/sync.html?flag='.$flag);
    
     ?>

    三、没有Ajax之前浏览器是通过iframe来实现异步刷新

    1.iframe标签:iframe标签通过src连接到一个页面,其实就是将需要实现异步刷新的内容使用
    iframe标签包裹,

    A.对iframe实现整个页面刷新,其实是通过刷新一个页面的子页面来实现异步刷新;

    a.主页面代码:

    <div>通过实现子页面刷新来实现异步刷新</div>
    <iframe src="../testphp/data.php" frameborder="0"></iframe>

    b.php页面代码:

    <?php
        echo 1;
    ?>

    B.通过在刷新子页面的同时在子页面做一些操作来访问父页面元素并且修改该元素的内容

    a.主页面代码:

    <div id="refreshTarget"></div>
    <form action="../php/data.php" method="post" target="targetIframe">
    <input type="submit" value="提交">
    </form>
    <iframe name="targetIframe" frameborder="0">iframe</iframe>

    b.php页面代码:

    <?php
        echo 1;
    ?>
    <script type="text/javascript">
        parent.document.querySelector('#refreshTarget').innerHTML = '刷新成功';
    </script>

    三、Ajax实现异步刷新

    1.使用get方法来发送请求:

    /**
     * 使用ajax get方式来验证用户名密码是否正确
     * 1.区别于表单,我们需要自己拼接查询字符串,不是表单提交,可
     * 以不为表单添加name属性
     * 2.将数据放在查询字符串中传到请求的页面,然后页面获得数据进
     * 行操作,然后对前端返回响应数据,解析数据,刷新
     */
    var submit = document.querySelector('#submit');
    submit.onclick = function(){
        var nameValue = document.querySelector('#username').value;
        var passValue = document.querySelector('#password').value;
        var target = document.querySelector('#refreshTarget');
        /* 实例化XMLHttpResquest*/
        var xhr = new XMLHttpRequest();
    
        /* 监控xhr对象的状态,只要xhr.readyState值改变就会触发事件由alert弹出框的值可以知道
            a.以下xhr.readyState值为4的时候表示请求响应结束,数据接收完毕并且可以使用
            b.xhr.status值为200表示请求成功
        */
        xhr.onreadystatechange = function() {
            alert(1);
            if(xhr.readyState == 4) {
                if(xhr.status == 200){
                    var data = xhr.responseText;
                    if(data == 1) {
                        target.innerHTML = '验证成功';
                    }else if(data == 2) {
                        target.innerHTML  = '验证失败';
                    }
                }
            }
        }
    
        /* 配置请求参数,
        设置url的查询字符串的值时候最好进行URI编码比如:encodeURIComponent(nameValue),因为
        在一些浏览器中会出现乱码现象
        */
        var url = '../testphp/inspector.php?username='+nameValue + '&password='+ 
        passValue;
    
        xhr.open('get',url,true); // xhr.readyState = 1;
    
        /* 发送请求*/
        xhr.send(null); // xhr.readyState = 2;
        alert(2);
    }

    2.使用post方法来发送请求:

    /**
     * 使用ajax post方式来验证用户名密码是否正确
     * 1.区别于表单,我们需要自己拼接查询字符串,不是表单提交,可
     * 以不为表单添加name属性
     * 2.将数据放在查询字符串中传到请求的页面,然后页面获得数据进
     * 行操作,然后对前端返回响应数据,解析数据,刷新
     * 3.区别于ajax,get方法就是数据是放在send发送不是添加到查询字符串
     */
    var submit = document.querySelector('#submit');
    submit.onclick = function(){
        var nameValue = document.querySelector('#username').value;
        var passValue = document.querySelector('#password').value;
        var target = document.querySelector('#refreshTarget');
        /* 实例化XMLHttpResquest*/
        var xhr = new XMLHttpRequest();
    
        xhr.onreadystatechange = function() {
            alert(1);
            if(xhr.readyState == 4) {
                if(xhr.status == 200){
                    var data = xhr.responseText;
                    if(data == 1) {
                        target.innerHTML = '验证成功';
                    }else if(data == 2) {
                        target.innerHTML  = '验证失败';
                    }
                }
            }
        }
    
        /* 打开请求*/
        var url = '../testphp/inspector.php?';
    
        xhr.open('post',url,true); // xhr.readyState = 1;
    
        /* 修改请求头模拟from表单的post提交,
        a.设置Content-type可以使得在php页面中$_POST[‘key’]的方式来获取对应的值,不然的话必
        须在$HTTP_RAW_POST_DATA对象中获取
        b.设置'Content-type'既是使用类似表单方式提交数据,所以一下必须对send发送的数据序列
        化为‘name=name&value=value’的形式*/
        xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    
    
        var data = 'username='+nameValue+'&password='+passValue;
    
        /* 发送请求*/
        xhr.send(data); // xhr.readyState = 2;
    }

    请求的php页面代码

    <?php
    /* 设置响应数据的内容格式,和字符集,此时前端的responseXML保存着XML DOM文档*/
    header('Content-type:text/html;charset=utf-8');
    
    /*使用表单的post请求php页面中可以通过$_POST来获取*/
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    if($username == 'admin' && $password == '123'){
        echo 1;
    }else{
        echo 2;
    }
    
    ?>

    3、ajax的get和post的区别:

    A.get方式:

    a.设计初衷是用于向服务器查询数据的,也可以发送数据,服务器返回的数据一般会缓存在浏
    览器中,当通过相同的url发送请求时候,请求会被中断,而从浏览器取出缓存的数据;
    
    b.get向服务器传送的数据放在查询字符串中,由于浏览器的地址栏长度有限制,所以只能满
    足发送较少量数据;
    

    B.post方式:

    A.用于向服务器发送数据,能发送较大的数据量,并且能够发送多种格式的数据,所以一般都
    需要在请求头中设置Content-type值指定发送的数据的格式,数据存在请求主体里面,
    

    4、封装原生Ajax:

    1.封装函数实现的功能:
    
        A.可以指定post/get请求方式
    
        B.当指定post时候可以指定传输数据的格式,
    
        C.请求成功,和失败都会执行响应函数
    
    function myAjax(param) {
        /*实例化xhr*/
        var xhr = null;
        if(window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }else {
            xhr = new activeXObject('Microsoft.XMLHTTP');
        }
    
        /**
         * 参数属性值默认处理
         * 1.dataType默认json格式数据
         * 2.type默认get方式
         * 3.contentType默认'application/x-www-form-urlencoded'
         * 4.async默认true异步
         */
        var dataType = param.dataType || 'json'; 
        var type = param.type || 'get';
        var contentType = param.contentType || 'application/x-www-form-urlencoded';
        var async = param.async || true;
    
        /*监听xhr.readyState*/
        xhr.onreadystatechange = function() {
            if(xhr.readyState == 4) {
                if(xhr.status == 200) {
                    var data = dataType == 'json' ? xhr.responseText : xhr.responseXML;
                    param.sucess(data);
                }else{
                    param.failure(new Error('请求失败'));
                }   
            }
        }
    
        /**
         * 配置请求参数
         * 1.根据请求方式设置url和send()方法的发送数据sendData
         * 2.对查询字符串进行URI编码encodeURIComponent()
         * 3.对get方式处理缓存不再请求问题
         */
        var url = param.url;
        var sendData; 
        if(type == 'get') {
            url += '?' + formatFormData(param.data);
            sendData = null;
        }else {
            /*表示发送的数据会经过URL编码,发送的是类似查询字符串格式的数据*/
            if (contentType == 'application/x-www-form-urlencoded') {
                sendData = formatFormData(param.data);
            }else if(contentType == 'multipart/form-data') {
            /*表示发送的数据会经过MIME编码,发送的是二进制数据,一般用于文件提交*/
    
            }else if(contentType == 'application/json') {
                sendData = JSON.stringify(param.data);
            }
        }
        console.log(url);
        xhr.open(type,url,async);
    
    
        /*post方式提交设置响应头指定数据传输方式*/
        if(type = 'post') {
            xhr.setRequestHeader('Content-type',contentType);
        }
    
        /*发送请求*/
        xhr.send(sendData);
    
    
        /*函数将一个对象的属性格式化为key=value&key=value形式*/
        function formatFormData(obj) {
            var str = '';
            for(var key in obj) {
                str += '&' + key + '=' + encodeURIComponent(obj[key]);
            }
            return str.substring(1);
        }
    }

    四、$.ajax()函数:
    1.参数是一个对象,对象的常用属性:

    A.data:对象,用于保存post方法时候需要传输得数据;

    B.url: 请求的文件的路径;

    C.dataType: 用于指定返回数据的类型,作为jQuery在前端处理服务器返回的字符串的根据;

    a.text: 纯文本字符串
    b.json: JSON 数据
    c.html: 纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行
    d.xml:指定返回的数据是xml DOM文档
    e.jsonp:格式为callback(data)的字符串;
    f.script:纯文本 JavaScript 代码
    

    D.type: 请求的方式,get/post;

    E.success: 回调函数,请求成功之后执行

    F:error: 在请求失败的时候调用

    H.jsonp: 值为jsonp请求时候回调函数的key,用于替换key=callback的key部分

    I.jsonpCallback: 值为jsonp请求的回调函数名

    五、XML、JSON数据解析

    1、XML数据解析:

    A.XML和HTML的区别(参考一些书籍和网上的一些描述):

    a.XML(Extensible Markup Language):可扩展标记语言,设计用于描述数据,必须是双标签

    b.HTML(Hyper Text Markup Language):超文本标记语言,设计用于显示数据,可以是单标签

    B.web开发中浏览器请求服务器中的XML文件,服务器会返回响应数据XML的DOM文档,在前端使用DOM操作来解析该文档,比如:

    a.XML DOM文档

    <china>
        <province>
            <name>广东<name>
        </province>
    </china>

    b.假定data值是以上XML DOM文档对象,解析获取name的值:“广东”

    var name = data.getELementsByTagName('name')[0];
    var targetText ; 
    if(name.textContent) {
        targetText = name.textContent; // 标准浏览器
    }else {
        targetText = name.text; // IE
    }
    

    2、JSON数据解析

    A.JSON相比XML来说在一定大小的情况下能保存更多的数据,解析也方便,直接使用键来访问就可
    以,比较简单。

    B.在ajax请求时,在php中使用echo返回的是一个JSON字符串,前端要解析时需要先转化为JSON对
    象。

    a.JSON.parse(JsonString):将JSON字符串转化为JSON对象

    b.JSON.stringify(Json):将JSON对象转化为JSON字符串

    C.后端返回的JOSN字符串可以通过eval()函数转化为JSON对象,作为eval函数的返回值;eval()
    函数可计算某个字符串,并执行其中的的 JavaScript 代码。

    a.var json = eval(JsonString),

    b.eval()函数因为安全性问题现在使用的比较少

    展开全文
  • 同步传输方式 该方式的数据传输是在一个共同的时钟信号控制下进行,时钟通常由时钟发生器发出,经分频电路送到总线上的所有模块,总线操作有固定时序,所有信号与时钟的关系在时序上是固定的,...异步通信 不要求所...
  • 串口通讯—异步通信方式

    千次阅读 2013-03-14 12:33:26
    串口通讯—异步通信方式   串行通信可以分为两种类型:同步通信、异步通信。 1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式: ...
  • 串口通信基本概念(一)——串行与并行通信,同步与异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,...
  • 异步-就是你叫我,然后自己去吃饭了,我得到消息后可能立即走,也可能等到下班才去吃饭。 所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。 同步与异步传输的区别 1...
  • c#编写的基于Socket的异步通信系统封装DLL--SanNiuSignal.DLL SanNiuSignal是一个基于异步socket的完全免费DLL;它里面封装了Client,Server以及UDP;有了这个DLL;用户不用去关心心跳;粘包  ;组包;发送...
  • 同步串行通信异步串行通信

    千次阅读 2017-05-12 20:54:48
    串行通信是微机接口的一个重要组成部分,有着极其广泛的应用。...微机通信有串行和并行两种通信方式,并行通信可以提高数据交换速度而串行通信可以节省系统资源,降低系统成本。串行通信又分为同步串
  • 消息中间件 MQ 企业级方案设计,第 1 部分: 异步通信与负载均衡 本系列以使用 IBM 大型机服务器的客户为主要对象,探讨如何应用 WebSphere MQ 的特性来实现企业级应用的业务需求。本文是第 1 部分,将为大家介绍...
  • 同步串行与异步串行通信

    万次阅读 多人点赞 2018-09-14 14:38:46
    串行通信是微机接口的一个重要组成部分,有着极其广泛的应用。...微机通信有串行和并行两种通信方式,并行通信可以提高数据交换速度而串行通信可以节省系统资源,降低系统成本。串行通信又分为同步串行...
  • C#线程通信异步委托

    千次阅读 2013-08-26 21:25:39
    第一次写关于技术原创···· 至于要用到题目说到的这种方法,...在这个过程我的主线程可以完成一些其他的工作,这叫磨刀不误砍柴工··嘿嘿 关于异步委托,这里要用到里面的两个方法BeginInvoke 和 EndInvoke
  • Exynos4412异步串口通信及实验

    千次阅读 2017-12-01 22:10:03
    通信传输方式 ...并行传输速率高,成本也高,适用于近距离设备传输,当然了还有RS-485,RS-422,使用了串行差分通信总线,传输速率,抗干扰性能好,同时传输距离远。 同步传输与异步传输
  • JavaScript已然成为了多媒体、多任务、多内核网络世界的一种单线程语言。其利用事件模型处理异步触发任务的行为成就了JavaScript作为开发语言的利器。如何深入理解和掌握JavaScript异步编程变得尤为重要!!!...
  • 答:按照连接部件的不同,总线可以分为片内总线、系统总线和通信总线。 系统总线是连接CPU、主存、I/O各部件之间的信息传输线。 系统总线按照传输信息不同又分为地址线、数据线和控制线。 地址线是单向的,其根数越...
  • http://bbs.csdn.net/topics/390947849 从这里看,linux上共享内存是最快的,即使Java由于磁盘文件会有额外的开销,但是由于是异步的,对性能影响应该不大。 因此应该是共享内存最快.
  • 异步时钟域的信号通信问题

    千次阅读 2012-05-01 09:11:30
    【转】异步时钟域的信号通信问题 随着信息技术的飞速发展,特别是在二十世纪90年代以后,美国在南斯拉夫战争和两次海湾战争成功地运用了电子...目前军用计算机传输数据的最快方式——DMA方式的传输速率最大也只是在
  • 通讯的方式分类: 1.并行通信:是指数据的各位同时在多根数据线上发送或接收。如下图 并行通信的特点:控制简单,传输速度;由于传输线较多,适用...在串行通信中,根据对数据流的分界、定时以及同步方案方法...
  • 在网络通信过程通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络,定时的因素称为位同步。同步是要接收方按照...
  • 使用 Windows 运行时中异步性来始终保持应用程序能够快速流畅地运行
  • asio中异步IO的体会

    千次阅读 2012-08-09 17:25:13
    想在QT的程序使用asio库实现异步IO操作,服务端是按照asio的http范例改写的,没什么问题.而客户端基本上都是采用同步方式.那么我能不能在客户端采用异步方式呢?第一感觉是肯定可以,而且会很简单的就能实现.  那就...
  • PC机与下位单片机异步串行通信

    千次阅读 2007-11-14 00:07:00
    介绍了分布式控制系统上位PC机与下位单片机异步串行通信通信协议;同时介绍了在VC++6.0环境下用PComm编写的PC机通信程序来实现上位机和下位机异步串行通信的方法,给出了PComm编程实例和下位机程序模块流程图。...
  • 单片机各种通信方式的特点和主要应用场合 串口用的比较多: RS232,用于与标准的RS232设备通讯 网卡,用于互联网或采用网卡端口的设备通讯 I2C,用于单片机自己外设或多个单片机之间通讯 CAN,工业标准,汽车...
  • Html5 的 WebSocket通信

    千次阅读 2016-05-29 10:49:08
    使用ws或wss协议,是下一代客户端-服务器的异步通信方法。在WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。现在,很...
  • 关于dotnet的异步socket通信的问题

    千次阅读 2006-03-21 14:00:00
    关键词:dotnet, socket, asynchronous 异步, tcp在上次参加趋势的百万程序大赛的时候,我负责的socket通讯部分出了一件怪事:当大量传输数据包的大小在一定大小以上(一般是1500到2000)的时候,会在一定时间之后...
  • 对于许多初学者来说,网络通信程序的开发,普遍的一个现象就是觉得难以入手。许多概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等,初学者往往迷惑不清,只知其所以而不知起所以然。  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,411
精华内容 45,764
关键字:

异步通信中最快的是