当前位置: 首页 > news >正文

有哪些网页设计软件sem优化

有哪些网页设计软件,sem优化,万网怎么建设网站,有些网站仿出问题前言 为了解决Javascript 语言的执行环境是单线程所带来的问题#xff0c;Javascript 将任务的执行模式分为两种#xff1a;同步和异步 同步即为后一个任务等待前一个任务结束再继续执行#xff0c;程序的执行顺序与任务的排列顺序是一致的 异步则完全不同#xff0c;每… 前言 为了解决Javascript 语言的执行环境是单线程所带来的问题Javascript 将任务的执行模式分为两种同步和异步 同步即为后一个任务等待前一个任务结束再继续执行程序的执行顺序与任务的排列顺序是一致的 异步则完全不同每一个任务都有一个或者多个回调函数前一个任务结束后不是执行后一个任务而是执行回调函数后一个任务则是不等待前一个任务执行结束就执行。因此程序的执行顺序与任务的排列是不一致的、异步的。在浏览器端耗时很长的操作都应该异步执行从而避免浏览器失去响应。在服务端异步模式甚至是唯一的模式因为执行环境是单线程的如果同步执行所有的 http 请求服务器的性能会急剧下降。 异步解决方案 回调函数 callback 回调函数简单来说就是一个函数作为参数传递给另一个函数 回调并不一定就是异步并没有直接关系只不过回调函数是异步的一种解决方案 // 同步 function fn1(callback){console.log(1)callback callback() }function fn2(){console.log(2) }fn1(fn2)// 异步 function fn1(callback){setTimeout(() {callback callback()}, 1000) }function fn2(){console.log(2) }fn1(fn2) 缺点 代码不优雅不易阅读维护高耦合层层嵌套造成这种回调地狱异步回调中回调函数的执行栈与原函数分离开外部无法抓住异常异常会变得不可控 事件监听发布订阅模式 class EventEmitter {constructor() {this.events {};}// 订阅指定的事件on(event, listener) {if (!this.events[event]) {this.events[event] [];}this.events[event].push(listener);}// 取消订阅指定的事件off(event, listenerToRemove) {if (!this.events[event]) {return;}this.events[event] this.events[event].filter(listener listener ! listenerToRemove);}// 触发指定的事件并传递数据给事件监听器emit(event, ...args) {if (!this.events[event]) {return;}this.events[event].forEach(listener {listener.apply(this, args);});} }// 使用 EventEmitter 的例子// 创建一个事件发射器的实例 const eventEmitter new EventEmitter();// 创建监听事件 const onMessage (message) {console.log(Received message: ${message}); };// 将监听器绑定到事件 message eventEmitter.on(message, onMessage);// 触发事件 message并传递数据 eventEmitter.emit(message, Hello World!); // 输出: Received message: Hello World!// 取消订阅 eventEmitter.off(message, onMessage);// 再次触发事件 message此时没有监听器监听这个事件因此不会有输出 eventEmitter.emit(message, Hello again!);Promise ES6ECMAScript 2015引入了Promise它是一种对异步操作进行管理的机制。Promise 代表一个尚未完成但预期将来会完成的异步操作的结果。它可以解决传统的回调地狱问题提供更加优雅的异步代码管理方式具备以下特点 状态不可逆Promise有三种状态pending进行中fulfilled已成功和rejected已失败。状态改变只能从 pending 到 fulfilled 或从 pending 到 rejected状态一旦改变就不会再变。 异步结果的占位符Promise 起到一个代理的作用允许你在异步操作未完成时安排代码以响应式的成功fulfilled或失败rejected。 示例和基本用法 // 创建一个新的 Promise 对象 let promise new Promise(function(resolve, reject) {// 异步操作setTimeout(() {// 成功的异步操作resolve(Data received);// 或者一个失败的异步操作// reject(new Error(Failed to receive data));}, 1000); });// 使用 then 方法设置当 promise 状态变为 fulfilled 时应该执行的代码 promise.then(function(value) {console.log(value); }, function(error) {console.error(error); });// 使用 catch 方法来捕获异常 promise.catch(function(error) {console.error(There was an error, error); });Promise的方法 then(onFulfilled, onRejected)then方法返回一个新的 Promise。它接受两个函数作为参数。第一个函数在Promise成功时调用并接受成功的值作为参数。第二个函数在Promise失败时调用并接受错误或拒绝的理由作为参数。catch(onRejected)捕获 Promise 中发生的任何异常等同于.then(null, onRejected)。finally(onFinally)无论 Promise 最终的状态如何都会执行onFinally回调而且不接收任何参数。它通常用于清理操作比如停止加载指示器。 此外Promise API 还提供了几个静态方法用于处理多个Promise Promise.all(iterable)接受一个 Promise 对象的集合作为输入当这些对象全部成功时才触发成功。Promise.race(iterable)同样接受一个集合但只要其中的一个 Promise 对象改变状态返回的 promise 对象就会随之改变状态。Promise.resolve(value)返回一个以给定值解析后的 Promise 对象。Promise.reject(reason)返回一个以给定理由拒绝的 Promise 对象。 Promise 提高了异步代码的可读性和可维护性并且是许多现代JavaScript异步编程的基石。 Async/Await TODO Async/Await Generator Promise
http://www.pierceye.com/news/873101/

相关文章:

  • 腾讯云建设网站wordpress仿知乎社区
  • 《网站开发技术》模板linchong.wordpress
  • 找做企业网站论文旅游网站建设
  • 类似情侣空间的网站开发seo外推软件
  • 网站建设策划方案怎么写工业品网络营销
  • 上海本地网站建设微信网站怎么建设
  • 江苏华江建设集团网站wordpress开发找工作
  • 家政服务网站源码自己做网站好还是让别人做
  • 手机网站用什么系统做网站在什么地方发帖子呢
  • 虚拟电脑可以做网站吗中国建设行业信息网站
  • 网站设计建设合同公司网页设计实例教程
  • 仿起点小说网站开发网站图片优化工具
  • 在线做logo的网站泉州做网站哪家好
  • 知名企业网站人才招聘情况如何网络系统集成
  • 做灯带的网站重庆有哪些好玩的地方
  • 小孩子做手工做游戏的网站百度账号设置
  • 大庆做网站公司巩义网站建设方案报价
  • 该网站受海外服务器保护品牌营销型网站建设公司
  • 免费做一建或二建题目的网站郑州企业建站系统模板
  • 想自己建个网站徐州做网站软件
  • 蓝色系网站设计企业应对承包商的施工方案尤其是
  • 旅游网站 源码 织梦导购网站开发
  • 头像制作网站开源低代码平台
  • 网站到期域名怎么解决办法自己动手建立网站3
  • 比较有名的网站建设平台吉林建设网站
  • 网站服务器解决方案wamp安装wordpress
  • 义乌制作网站赣州网站建设公司
  • 东莞网站平台后缀建设淘宝客网站
  • 深圳龙华新区住房和建设局网站示范校建设专题网站
  • 成都制作网站的公司简介wordpress录入表单写数据库