js_同步和异步
刚开始写js那会,对这一块是知之甚少,太多太多的知识不足,致使做什么都很艰难。现在工作也有段时间了,知识也有了点积累,
写点什么分享一下。
同步和异步?这个问题是在使用ajax请求后台数据的时候出现的。
同步:按照文档从上到下顺序运行程序,也就是前面一步没有执行完成,就不会运行后面的代码。
异步:在文档中,使用ajax调用后台数据的时候,这里需要请求时间,而程序在请求数据的过程中也会运行后面的程序,这是ajax
的一个特性。
ajax中有一个属性: async: false,false为同步,true为异步。默认为true,也就是说当我们没有添加这个属性的时候,一般都是异步执行。
ajax:
ajax: function(url, data, callback) { url = location.protocol + '//' + location.host + url, $.ajax({ url: url, data: data, dataType: "json", type: "post", async:true, success: function(res) { callback(res); }, error: function() {} }); },
上面代码是封装的一个ajax代码块。
关于同步和异步的更直观表现是,当我们打开一个页面的时候直接一个页面呈现出来的是同步数据,当一个页面是一部分一部分呈现出来的是异步加载的数据。在没有前后端分离的时候,都是一下同步页面,也就是前端
写一下样式和页面,数据由后台直接加载完成后呈现到客户面前。异步就是前端写好页面样式,通过ajax请求后台数据,页面会先加载样式,数据会一部分一部分加载出来。
“世界是个叙述者, 而我们却蒙上黑布, 嗤之以鼻。”