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

可以制作网站的软件是什么wordpress 预览插件

可以制作网站的软件是什么,wordpress 预览插件,wordpress免费的音乐插件,wordpress 插件 破解Deno 里面有一句描述#xff1a;Aims to be browser compatible#xff0c;可以看到 Deno 的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢#xff1f; 我简单谈谈我的理解吧。 首先这里的兼容性肯定不是 Deno 直接在浏览器端运行。因为 Deno …Deno 里面有一句描述Aims to be browser compatible可以看到 Deno 的目标是兼容浏览器。那么这里的兼容浏览器到底如何是什么意思呢 我简单谈谈我的理解吧。 首先这里的兼容性肯定不是 Deno 直接在浏览器端运行。因为 Deno 是一个和浏览器平级的 Runtime。 很多人还有误解以为兼容浏览器指的是 Deno 会提供“类似 Node.js 里的 UMD 写法”。首先我们明确一点这里的兼容不是单指语法层面的兼容并不是说要兼容 ES3 ES5。所以不要产生这种误解以为可以通过 babel 兼容 Node.js 和 Deno。 在 Deno 的 Roadmap 里面作者就已经写到了 Deno does not aim to be API compatible with Node in any respect. Deno will export a single flat namespace deno under which all core functions are defined. We leave it up to users to wrap Denos namespace to provide some compatibility with Node. 这里的兼容我的理解是兼容浏览器的 API 和生态。坐等被打脸 之前有个 issue discussion: struct the browser-compatible APIs #82 讨论这个问题在 issue 中列举了一些想要兼容的浏览器 API High level Console ✓URL ✓File/FileList/FileReader/BlobXMLHttpRequest/FetchWebSocketURLSearchParams Middle level AudioContext/AudioBufferCanvas 讨论中还包括 WebGL 设置 GPU 的支持。我们可以隐约猜到 Deno 的一个目标就是让浏览器中的代码可以直接运行在 Deno 上面。 我的观点依然是Deno 不是下一代 Node.js。再次坐等被打脸 Deno 是一个“A secure TypeScript runtime on V8”。一个安全的基于 V8 的 TypeScript 运行时这个怎么理解呢。 浏览器可以认为是安全的 JavaScript 运行时所有的 JavaScript 代码都是在沙盒Sandbox里面运行。浏览器虽然安装在你的电脑上但是浏览器里面运行的 JavaScript 代码可以来自世界各地换言之浏览器里面运行的都是不受信代码如何保证浏览器的 JavaScript 代码不破坏你的电脑系统这是浏览器安全机制需要解决的一个问题。而 Node.js 则不是和任何的 Web 服务器一样Node.js 运行的是受信代码。 之前 V8 出现了关于逃逸分析Escape Analysis的安全漏洞Chrome 采取了紧急措施在下一个版本中删掉了逃逸分析相关的功能相比之下Node.js 则没有受到影响因为 Node.js 运行的代码本来就是受信的。 从这个角度讲Deno 和浏览器的定位很像。 V8 团队的一个错误使得整个互联网变慢 因为我们可以看到兼容服务器端生态和兼容浏览器端生态的一个区别 浏览器里面运行的都是不受信代码服务器运行的是受信代码 我们再换一个角度聊聊服务器生态。 很多人还有一个误解就是觉得上面提到的那些 API对于 Node.js 也完全可以兼容比如 Console、URL、XMLHttpRequest/Fetch 等很多 API 都已经被 Node.js 实现了。 当 Node.js 被开发出来的时候类似 File、URL、Buffer 这类的 API 浏览器端都还没有但由于 Node.js 定位为服务器端运行平台因此 Node.js 参考的是其他 Web 服务器或者服务器编程语言。例如文件系统File System实现了一系列 POSIXPortable Operating System Interface可移植操作系统接口 兼容的函数和功能。 还有一点需要注意的是 Node.js 和浏览器的趋同化例如 Node.js 7 加入的 URL API而当今的主流浏览器也都提供了这个 API这是因为 Node.js 也使用了 WHATWG URL 标准。 WHATWG 的全称是 Web Hypertext Application Technology Working Group网页超文本应用技术工作小组。这是一个相当“有重量”的组织当 W3C 决定放弃 HTML 打算将未来的重点放在 XHTML 2.0 上时WHATWG 坚决拥护 HTML并制定了下一代 HTML 计划。最终 WHATWG 说服了 W3C 并与其一起发布了 HTML5。 如今 Web 的飞速发展我们要感谢这些组织的努力。 那么现在就有一个疑问了如果 Node.js、浏览器、Deno 都使用这些标准后那么他们是不是就会变得一样Deno 会不会取代 Node.js成为下一代 Node.js或者 Deno 变成一个和 Node.js 一样但是比 Node.js 还难用的平台最终被边缘化或者被抛弃 不会。因为性能和安全是不可兼得的比如 File/FileReader/Blob 这种 API 天生就是为浏览器端沙盒环境设计的WHATWG 好多标准都是为浏览器设计的。Node.js 还没有提供相应的 API而且也不打算提供毕竟在服务器端环境我们更需要的是文件系统所以 Node.js 不去拥抱 WHATWG而选择了 POSIX。 既然谈到了这个那我就再讲的深入一点吧深入到底层看看为什么 Node.js 不是用 Blob 和 FileReader 来读取文件。 在浏览器端文件通常来自于网络由 url 提供或者来自于表单的用户主动选择。无论何种方式都是由浏览器来完成文件的读取并把文件内容加载到内存缓冲区中这时 JavaScript 可以通过 Blob 来操作此文件。但是 Node.js 却没有实现这些 API而是在文件系统之上构建了 Stream 模块来实现。再看看其服务器端编程语言例如 Java、PHP 也都提供了 Stream。 如果我们把 Node.js 作为一个 Web 服务器那么我们横向和 Nginx 对比一下。如果使用 js 开发一个静态文件服务器那么 Nginx 可以轻轻松松以十倍百倍的性能辗压 Node.js。 我们可以从底层分析一下两者为何相差悬殊。这里有几个知识点 用户空间内核空间进程上下文中断上下文DMAZero Copy 为了安全考虑操作系统不允许用户代码直接操作硬件为了保证操作系统内核的安全将空间划分为两部分一部分为内核空间一部分为用户空间。用户编写的代码运行在用户空间当需要使用底层功能时可以通过系统调用进入内核例如文件读取。 当用户进程通过系统调用从用户空间进入到内核空间时系统需要将用户进程的上下文保存起来当再次从内核空间回到用户空间时系统恢复此上下文。 对于静态服务器则这个步骤大概是 调用 read文件被 copy 到内核缓冲区read 函数返回文件从内核缓冲区 copy 到用户缓冲区write 函数调用将文件从用户缓冲区 copy 到内核与 socket 相关的缓冲区数据从 socket 缓冲区 copy 到相关协议引擎 可以看到文件在整个过程中被 copy 了 4 次。 而 Nginx 底层使用 sendfile可以实现 Zero Copy (零拷贝)。 整个流程变成了 sendfile 系统调用文件被 copy 至内核缓冲区从内核缓冲区 copy 至内核中 socket 相关的缓冲区从 socket 相关的缓冲区 copy 到协议引擎 可以看到在这个过程中只有 3 次 copy。而且没有了用户空间和内核空间的切换也不需要保存和恢复进程的上下文。其实上面还有优化的余地因为在内核中发生了一次缓冲区到缓冲区的 copy。在 Linux 内核版本 2.4 之后DMA 模块将数据直接从内核缓冲区传递给协议引擎。 虽然称为 Zero Copy但是数据依然是从磁盘复制到了内存从操作系统的角度来看这个是必须的所谓的零拷贝是指内核中没有冗余数据数据不需要在内核拷贝。借助 DMA 模块此过程完全不需要 CPU 参与。 在 Nginx 中只需要数据副本的 2 个 copy而 Node.js 则需要 4 次。如果 Node.js 要想使用 Zero Copy 也有方法比如使用 os 模块的功能或者直接使用 C 扩展。 从另一个角度讲Node.js 的性能损耗不仅仅是 4 次 copy 以及进程上下文的保存和恢复还包括数据和代码从 C 到 JavaScript 的反复跨越边界。 我们回过头来讨论浏览器对于浏览器来讲根本就不需要这个特性。因为浏览器中的 JavaScript 代码不仅仅是用户空间运行而且还是在沙盒空间运行。 所以与其在此猜测兼容浏览器指的什么不如对比浏览器和服务器的差别 浏览器运行不受信代码服务器运行受信代码浏览器遵循 W3/WHATWG服务器遵循 POSIX浏览器关心 API 层的性能服务器更关心操作系统层的性能浏览器能力受限服务器能力不受限 扫码二维码关注我的公众号每周推送原创前端内容 更多专业前端知识请上 【猿2048】www.mk2048.com
http://www.pierceye.com/news/15800/

相关文章:

  • 邢台做网站企业个人网站怎么做视频
  • 国外免费源码网站移动互联网应用程序个人信息保护管理暂行规定
  • 国外做meta分析的网站如何让wordpress百度霸屏
  • 上海网站推广 优帮云隆基泰和 做网站
  • 网站 网络营销价值网站后台管理系统一般用户名是什么
  • 网站制作需求文档贴心的网站优化公司
  • 满洲里网站制作网站建设企划书
  • 黔东南购物网站开发设计4399小游戏网站入口
  • 新公司董事长致辞做网站网站建设开发费用预算
  • 纯静态网站制作wordpress图片搬到聚合图床
  • 网站开发如何避开法律怎么推广自己的公司
  • 知名seo网站优化公司外贸行业网站建设
  • 聚合猫网站建设三线城市做网站需求
  • 果洛营销网站建设公司济南网站定制制作
  • 响应式网站建设精英wordpress和json
  • 服装电子商务网站版式设计做网站需要营业执照嘛
  • 阿里云网站备案注销吗wordpress无法创建目录安装失败
  • 网站建设给客户看的ppt模板帮别人做网站服务器
  • 有了网址可以建网站吗厦门市建设局查询保障摇号网站
  • 工业信息化网站备案系统宁波seo教程行业推广
  • 简单手机网站模板南宁市建设工程造价信息网
  • 深圳深圳网站制作做网站怎么备份数据
  • 亲子网站源码fixed wordpress
  • 相亲网站排名前十名做网站维护的人叫啥
  • 有心学做网站网页设计公司未来三年费用利润
  • 网站自动推广软件免费网站除了做流量还需要什么软件
  • 深圳网站建设公司哪家好seozou是什么意思
  • 好一点的网站wordpress分类管理
  • 请列举常见的网站推广方法设计师网址导航官网
  • 网站空间就是虚拟主机吗主题设计师站