zoukankan      html  css  js  c++  java
  • 同步与异步的区别

    同步

    1.当你去访问一个网站时,只要服务器不给你返回数据,那么你只有等待,等到服务器的数据给你返回数据了才能看到页面,没有返回,只能"无尽的"等待,等待的过程中,很多时候都会出现白屏的现象,要是时间过长,就不会再等待了,传统的同步请求,对于用户体验不太友好,为了增强用户体验,所以就有了异步请求

    异步

    特点: "异步加载 局部更新"
    1.假如服务器没有找到数据,那么就不等待,去干别的事情,异步请求的底层都是基于Ajax或跨域的方式来实现功能特效,原生的Ajax实现页面局部更新的核心就是,在请求服务端的时候,返回的内容仅仅是一段文本或者代码,只操作一部分的页面,没必要进行整个页面的解析,如果说文件太大,这种时候明显会减少带宽,效率也会明显的提高,采用异步的方式,从后台传递的数据明显降低,请求的效率明显提高

    两者之间的行为

    同步:"阻塞"
    彼此等待,这里的彼此指的是浏览器与服务器端的Apache,当年在请求的过程中,如果说Apache或者与Apache类似的应用软件不给你响应相应的数据,只能"阻塞"(页面卡顿)

    异步:"不阻塞"
    当我们访问一个网站时,比如像新闻资讯类的网站,底部都会有"加载更多"的字样,当我们点击"加载更多"的时候,服务器响应的比较慢,但这个时候页面不会刷新,不会显示白屏,这样用户的体验也会大大的提高

    异步的过程解析

    领导想找小杨汇报一下工作

    1.领导告诉秘书去把小杨给叫过来
    2.领导接着干别的事情
    3.秘书去叫小杨
    4.秘书带小杨见领导
    5.秘书告诉领导小杨来啦
    6.小杨跟领导汇报工作

    浏览器Ajax请求服务端

    1.浏览器让xhr去跟服务器要点数据
    2.浏览器接着干别的事情
    3.xhr去向服务器请求数据
    4.服务器返回数据给xhr
    5.xhr通知浏览器数据已接收到了
    6.浏览器收到xhr返回的数据渲染页面

  • 相关阅读:
    c++ 图解快速排序算法
    Shell脚本检测文件夹是否已被挂载的方法
    Linux使用mount挂载samba共享
    PHP使用字符串名称调用类的方法
    命令行查看端口号被进程占用
    Golang Clearing slice
    送给自己的程序员箴言
    Entity Framework6 with Visual Studio 2013 update3 for Oracle 11g
    深入浅出ASP.NET MVC5系列之一
    年终福利:调试.NET Framework源代码
  • 原文地址:https://www.cnblogs.com/Chinatsu/p/13728134.html
Copyright © 2011-2022 走看看