ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段

本文与视频理解和操作有关

您也可以跳过下面的阅读

哪些是JavaScript语言

JavaScript是一种轻量级的脚本语言。“脚本语言”意味着它不具备开发操作系统的能力,而只编译控制其他小应用程序(如浏览器)的“脚本”。

JavaScript也是一种嵌入式语言。它本身提供的核心句子结构不是很好,只能用来做一些物理和逻辑运算。JavaScript 本身不提供任何 I/O(输入/输出)相关的 API,全部依赖于主机环境(host),因此 JavaScript 只适合嵌入较小的应用环境来调用主机环境提供的底层 API。

目前,在JavaScript中嵌入了很长时间的主机环境很多,最常见的环境是浏览器,还有服务器环境,也就是Node项目。

从句子的角度来看,JavaScript是一种“对象模型”语言。通过这个模型,各种主机环境描述自己的函数和操作套接字,然后通过JavaScript控制这个功能。此外,JavaScript 不是一种纯粹的“面向对象语言”,它支持其他编程范式(如函数式编程)。这几乎引发了任何问题,JavaScript 有多种方法可以解决它。当你阅读这本书时,你会惊讶于JavaScript句型的灵活性。JavaScript 的核心句子结构部分

相当简洁,仅由两部分组成:基本句子结构(如运算符、控制结构、语句)和标准库(是一系列具有各种函数的对象,如 Array、Date、Math 等)。此外,各种主机环境提供了额外的 API(即只能在该环境中使用的套接字)来促进 JavaScript 调用。例如,对于浏览器,它提供的其他 API 可以分为三大类。

浏览器控制类:操作浏览器
DOM 类:操作网页的各种元素
Web 类:实现互联网的各种功能

如果主机环境是服务器,则提供各种操作系统的 API,例如文件操作 API、网络通信 API 等。您可以在 Node 环境中找到所有这些。

本书主要介绍JavaScript的核心句型和浏览器Web开发的基础知识,并不涉及Node。本书可分为以下四个部分。

基本语法
标准库
浏览器 API
DOM

JavaScript 语言有多个版本。本书的内容主要基于 ECMAScript 5.1 版本,这是学习 JavaScript 句型的基础。对于 ES6 和更新的句型,请参考我的书“ECMAScript6 入门”。

为什么要学习 JavaScript?

JavaScript语言有一些独特的功能,值得学习。它既适合作为学习编程的入门语言,也适合作为日常开发的工作语言。它是目前最有前途和最有前途的计算机语言之一。

操纵浏览器的能力

JavaScript 是作为浏览器的外部脚本语言发明的,为 Web 开发人员提供了操作浏览器的能力。它是目前所有浏览器都支持的唯一通用浏览器脚本语言。它可以使网页呈现各种特殊效果,为用户提供良好的交互体验。

目前,世界上几乎所有的网页都使用 JavaScript。如果不加以使用,网站的易用性和效率将大大降低,并且很难成为一个方便和用户友好的网站。

对于互联网

开发人员,如果你想提供漂亮的网页,令人满意的互联网体验,各种基于浏览器的便利功能,以及前端和后端之间紧密高效的连接,JavaScript是一个不可或缺的工具。

广泛的使用领域

近年来,JavaScript的范围逐渐赶上了浏览器,正在发展成为一种通用的系统语言。

(1)浏览器的平台化

随着HTML5的出现,浏览器本身已经变得越来越强大,不再只是浏览网页,而是越来越像一个平台,JavaScript可以调用很多系统功能,比如操作本地文件、操作图像、呼叫摄像头和耳机等等。这使得JavaScript能够完成许多以前无法想象的事情。

(2)节点

Node 项目使 JavaScript 可用于小型服务器端项目,并且用 JavaScript 开发的网站的前端和后端都已成为现实。一些嵌入式平台(RaspberryPi)可以安装Node,因此JavaScript可以为这个平台开发应用程序。

(3) 数据库操作

JavaScript甚至可以用来操作数据库。NoSQL数据库本身的概念诞生于JSON(JavaScript对象表示法)格式,大多数NoSQL数据库允许JavaScript直接运行。PostgreSQL是一个基于SQL语言的开源数据库,支持JavaScript作为操作语言,可以部分取代SQL查询语言。

(4)联通平台开发

JavaScript也正在成为移动应用程序开发的语言。一般来说,Android平台是用Java开发的,iOS平台是用Objective-C或Swift开发的。许多人正在努力使JavaScript成为所有平台的通用开发语言。

PhoneGap项目是关于将JavaScript和HTML5打包在一个容器中,以便它可以在iOS和Android上运行。Facebook的ReactNative项目是将JavaScript编写的组件编译成原生组件,使它们具有出色的性能。

Mozilla基金会的移动操作系统FirefoxOS直接使用JavaScript作为操作系统的平台语言,不幸的是该项目没有成功。

(5) 嵌入式脚本语言

越来越多的应用程序使用JavaScript作为嵌入式脚本语言,例如Adobe著名的PDF阅读器Acrobat和Linux桌面环境GNOME3。

(6) 跨平台桌面应用

ChromiumOS和Windows 8等操作系统直接支持JavaScript编程应用程序。Mozilla的OpenWebApps项目,Google的ChromeApp项目,GitHub的Electron项目和TideSDK项目都可用于编程在Windows,MacOS和Android等多个桌面平台上运行的程序,独立于浏览器。

(7) 小结

可以预期,JavaScript最终将允许你只用一种语言为不同的平台(桌面,服务器和移动)开发程序。早在 2013 年 9 月,JavaScript 就是 GitHub 上使用的头号语言。

知名程序员杰夫·阿特伍德甚至提出了一个“阿特伍德定理”:

“所有可以用JavaScript编写的程序最终都会有一个JavaScript版本。(AnyapplicationthatcanbewriteinJavaScript最终会写在JavaScript中。

易于学习

与学习其他语言相比,学习JavaScript有一些优势。

(1)学习环境无处不在

只要有浏览器,它就可以运行JavaScript程序;只要你有一个文本编辑器,你就可以编写JavaScript程序。这意味着几乎所有笔记本都本机提供JavaScript学习环境,而无需安装复杂的IDE(集成开发环境)和编译器。

(2) 简单性

与其他脚本语言(如Python或Ruby)相比,JavaScript的句型相对简单ecmascript5 浏览器,本身的句型特征也不是很多。此外,这些句型的复杂部分不必学习。您可以使用简单的命令完成大部分工作。

(3)与主流语言的相似性

JavaScript 的句型与 C/C++ 和 Java 非常相似,如果你已经学会了这门语言(事实上大多数中学都教它),JavaScript 特别容易上手。

值得注意的是,虽然核心句子结构并不困难,但JavaScript的复杂性在其他两个方面是显而易见的。

首先,它涉及大量的外部 API。为了使JavaScript工作,它必须与其他组件一起工作,并且此类外部组件的数量如此之大,以至于它几乎涉及Web应用程序的各个方面,掌握它们并非易事。

其次,JavaScript语言有一些设计缺陷。有些地方相当不合理,有些地方会有奇特的经营结果。学习 JavaScript 的很大一部分时间都花在找出哪里有陷阱上。道格拉斯·克罗克福德(Douglas Crockford)写了一本著名的书,叫做JavaScript:The Good Parts,这意味着这种语言有很多不好的地方,你必须写一本书来解释它。其他程序员觉得,为了更合理地编写JavaScript,他们不能用JavaScript编写,而必须发明新的语言,比如CoffeeScript,TypeScript,Dart和其他为此目的发明的新语言。

尽管如此,JavaScript的地位并没有动摇。此外,语言标准的快速发展导致了JavaScript功能的增加以及句子缺陷和特性的填补。所以,JavaScript还是值得学习的,毕竟上手真的不难。

强大的性能

JavaScript 的性能优势通过以下方式突出显示。

(1)句子结构灵活,表现力强。

JavaScript 既支持像 C 这样的清晰过程编程,也支持灵活的函数式编程,可用于编写并发处理(并发)。这种句型早已被证明是非常强大的,可以在许多情况下使用,尤其是异步编程。

所有 JavaScript 值都是对象,这为程序员提供了灵活性和便利性。由于您可以在需要时轻松创建数据结构,因此您不必经历预定义的麻烦。

JavaScript 标准仍在快速发展,并且不断合理化以添加更多适用的句型。

(2)支持编译和操作。JavaScript语言

本身,即使它是一种解释型语言,而在现代浏览器中,JavaScript也是编译和运行的。该程序经过高度优化,运行效率接近双补程序的效率。此外,JavaScript引擎正在迅速发展,性能越来越好。

据悉,还有一种 WebAssembly 格式,它是 JavaScript 引擎的中间代码格式,都是双补码代码。由于跳过了编译步骤,因此可以实现接近本机二进制补码代码的运行速率。各种语言(主要是C和C++)可以编译成WebAssembly并在浏览器上运行。

(3)风波驱动,无阻挡设计。

JavaScript程序可以是事件驱动和非阻塞设计,适用于服务器端的高并发环境,普通硬件可以承受大量的访问。

开放

JavaScript 是一种开放语言。其标准ECMA-262是ISO国际标准,编写得非常详细和清晰;该标准的主要实现,如V8和SpiderMonkey引擎,是开放的,但质量很高。这保证了该语言不属于任何公司或个人,并且没有版权和专利问题。

语言标准由 TC39 委员会制定,该委员会透明运作,所有讨论都是公开的,会议记录是公开的。

不同公司的 JavaScript 运行时环境具有良好的兼容性,程序无需调整或只需小调整即可在所有浏览器上运行。

社区支持和就业机会

JavaScript被世界各地的程序员使用,它拥有庞大的社区,广泛的文献和书籍,以及丰富的代码资源。您需要使用的大多数功能都有几个开源库可供选择。

作为项目负责人,雇佣大量的 JavaScript 程序员并不难;作为一名开发人员,在JavaScript中找到工作也不难。

实验环境

本教程包含许多示例代码,只要笔记本安装了浏览器,就可以尝试使用这些代码。读者可以阅读和运行示例以加深理解。

建议安装 Chrome,它在“开发者工具”上的“控制台”是运行 JavaScript 代码的理想环境。

有两种方法可以进入Chrome“控制台”。

直接步骤:按 Option+Command+J (Mac) 或 Ctrl+Shift+J (Windows/Linux)。开发人员工具

演练:开发人员工具的快捷键是 F12,或 Option+Command+I (Mac) 和 Ctrl+Shift+I (Windows/Linux),然后选择控制台面板

进入控制台后,可以在提示后输入代码ecmascript5 浏览器,然后按 Enter 键执行代码。如果按 Shift+Enter,代码将换行,并且不会触发执行。我们建议您在阅读本教程进行试验时将代码复制到控制台。

作为尝试,您可以将下面的程序复制到“控制台”,按回车键,您可以看到运行结果。

function greetMe(yourName) {
console.log('Hello ' + yourName);
}

greetMe('World')
// Hello World

作者:charry Huang,腾讯CSIG前端工程师

1991 年 8 月,第一个静态页面诞生,由 Tim Berners-Lee 发布,他想告诉人们什么是万维网。 从静态页面到Ajax技术,从Server Side Render到React Server Components,历史的车轮滚滚向前,一项又一项技术诞生并蛰伏。

前言

1994年,万维网联盟(W3C,万维网联盟)成立,超文本标记语言(HTML,超文本标记语言)正式确立为网页的标准语言,我们的旅程从那时起就开始了。

本文将沿着时间线,从“发现问题-解决问题”的角度,带领大家了解Web技术发展的关键过程,了解典型技术的诞生和技术变革的原因,思考Web技术发展的诱因。技术发展。

蒂姆·伯纳斯·李

英国科学家、万维网之父蒂姆·伯纳斯·李(Tim Berners-Lee)于1989年在CERN正式提出万维网的概念。该网络最初是为了满足人工操作的需要而设计和开发的。世界各地高校和研究机构的科学家之间的信息共享,这就是为什么HTML的顶层声明是文档,而标签名和文档对象模型的名称也由此衍生而来。

1990年12月,他开发了世界上第一个网络浏览器。 1993年4月30日,CERN将万维网软件置于公共领域,将万维网推广到全世界,使万维网技术得以快速发展,深刻改变了人类生活的面貌。

他创建了超文本标记语言(HTML)并创建了历史上第一个网站。 当然,现在只剩下欧洲核子研究中心恢复的网站副本:info.cern.ch。

静态网页时代

早期的静态网页只有最基本的单栏布局,HTML支持的标签只有:

,. 后来为了丰富网页内容,

,这个标签诞生了。

现阶段,Web服务器基本上只是一个静态资源服务器。 每当客户端浏览器发送访问请求时,总会建立一个连接,找到URL指向的静态页面,并返回给客户端。

随着网页的快速发展,人们发现手动编译所有信息是非常困难和耗时的。

想象一下,如果一个页面有两个区域显示的内容相互独立,那么就需要覆盖所有的可能性,而需要编译的页面数量就是两个区域内容的乘积!

另外,静态网站只能根据用户的请求返回指向的网页,没有办法实现除了超链接跳转之外的任何交互。

这个时候,人们想要

ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段

JavaScript 的诞生

1994年,Netscape发布了Navigator浏览器,但他们迫切需要一种网络脚本语言,以便浏览器能够与网页交互。

1995年,在公司的压力下,Netscape的Brendan Eich仅用了三天的时间就设计出了JS的初始版本,并将其命名为Mocha。 后来,Netscape 为了赶上 Java 的流行,最终将 JS 更名为 JavaScript。 但实际情况是,Netscape 和 Sun 在更名为 JavaScript 之前就结成了联盟。

自此,网页有了一些简单的用户交互,比如表单验证; 它还具有一些基于JS的动态效果,例如走马灯。

但正是以PHP为代表的前端网站技术,让网页真正进入了动态网页时代。

附加信息:第一次浏览器战争

当Netscape推出JavaScript时,微软在JS的基础上编写了JScript和VBScript作为浏览器语言,并于1995年8月推出了IE 1.0。

由于Google在系统中捆绑了浏览器,而90%的人都使用Windows操作系统,因此大量用户被动选择IE。 面对Google快速占领浏览器份额,Netscape无奈ecmascript5兼容的浏览器,迅速将JavaScript提交给ECMA作为标准,制定了ECMAScript标准。

期间还流传过一则轶事,IE 4.0发布当天,Netscape的员工注意到公司地盘上出现了一个巨大的IE图标,这显然是一种嘲讽之举。 对此,网景将自己的吉祥物“Mozilla”放在了IE图标上,并挂上了写着“Netscape 72,Microsoft 18”的徽章——当时,IE的市场份额确实不如Netscape Navigator。

但这并没有解决共享问题。 Netscape最终赢得了第一次浏览器战争。 1998年,美国在线(AOL)以42亿美元的价格竞购它。

1998年网景被收购之前,网景发布了Navigator的源代码,希望通过大量程序员的参与来重新夺回市场份额。 Navigator 更名为 Mozilla。 这也是火狐浏览器的由来,也是第二次浏览器战争的伏笔。

CSS

1994年,Hkon Wium Lie最初提出了CSS的想法。 1996年12月,W3C发布了CSS规范的第一版。

美丽是每个人的追求。 自从 HTML 诞生以来,网页基本上就是一个富文本的小容器。 由于缺乏布局和美化手段,早期网页普遍采用表格标签进行布局。 为了解决网页“丑陋”的问题,Hkon Wium Lie 和 Bert Bos 共同起草了一份 CSS 提案,同时 W3C 对此也很感兴趣。

早期的网络表单

早期的CSS有很多版本,在PSL96版本中甚至可以在上面使用逻辑表达式。 但由于它太容易扩展,浏览器厂商众多,很难统一,最终会被抛弃。

ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段

在众多提案中,Hkon W Lie的CHSS(Cascading HTML Style Sheets)首先提出了样式表叠加的概念。

线尾的比例表示该款式的权重,最终的值会根据权重来估算。 图中将计算出30pt * 40% + 20pt * 60%作为h2字体大小的最终值。

为了解决CSS兼容问题,Netscape甚至将CSS与JS一起编译。

CSS自诞生以来就伴随着大量的bug,不同的浏览器表现也不同,欺骗了无数程序员。 今天我们可以使用相对可靠的css,不得不说这是一个奇迹。

动态网络技术

1995年,Rasmus Lerdof创建的PHP开始活跃在各大网站上。 它让Web能够访问数据库,PHP实现了人们所期盼的动态网页。

这里的动态网页并不是指网页的动态效果,而是指内容的动态展示和丰富的用户交互。 PHP就像打开了一扇通向互联网世界的窗户。 各种动态Web技术(如ASP、JSP)如雨后春笋般涌现。 由此,万维网开始快速发展,MVC模式也开始出现在前端网站技术中。

动态网页技术解决了以前各种令人喘不过气来的痛苦,生活永远会越来越好:

PHP等动态网页技术的原理一般是根据客户端的请求从数据库中获取相应的数据,然后插入到网页中,返回给客户端一个充满内容的网页。 这个阶段也是前端耦合的。

网页开发流程

而当满足了一些基本要求后,动态网页技术带来的缺陷就逐渐暴露出来:

然后阿贾克斯站了起来。

阿贾克斯

AJAX,Async JavaScript And XML,最初应用于1998年,并于2005年普及。AJAX的广泛使用标志着Web2.0时代的开启。 这也是各大浏览器竞相竞争的时代。

现在,我们可以通过AJAX动态获取数据,并使用DOM操作来动态更新网页内容。 让我们看看支持 AJAX 的网页是如何工作的:

此时,后端路由尚未普及。 大多数情况下,前端返回的是整个页面,部分内容是通过AJAX获取的。

随着智能手机的出现,APP开始萌芽。 与网页相比,APP编译后只需要数据套接字即可工作; 而网页需要在前端编写业务逻辑和控制跳转,还要编写一些AJAX请求的socket。

ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段

现阶段,后端能做的事情还很少,仍然背着“车图子”的绰号。 随着HTML5草案的出台,越来越多的交互可以在前端完成,程序员迫切需要解决以下问题:

后端能不能像APP一样,只需要请求一个数据socket就可以解读内容?

附加信息:第二次浏览器战争

2004年Firefox的发布拉开了第二次浏览器战争的序幕。 同期市场上诞生的各种新兴浏览器,如Safari、Chrome等也加入了这场战争。

此前,由于XP系统太热,IE 6没有竞争对手。 微软甚至解雇了大部分浏览器员工,只留下少数人进行象征性维护和错误修复。 这对于开发者来说尤其痛苦。

这时,Firefox以其优于IE的性能和特别友好的编程工具,迅速将这些被IE6摧残的网页开发者从水里救了出来,让前端工程师先成为了第一批忠实用户,然后,通过这种有经验的开发者,已经提升到了一般用户群。

基于webkit核心的Safari,凭借自有产品(iOS、MacOS)的垄断,迅速收割移动和Mac终端的市场份额; 同样基于webkit核心的Chrome,利用了谷歌放松警惕的机会,凭借优于市面上所有浏览器的性能,就像中国历史上的成吉思汗一样,大杀四方,迅速扩张自己的势力范围。市场份额。

微软知道自己已经失去了夺冠的机会。 这一次它不想再输了。 IE又开始迭代,各大浏览器厂商又开始无视标准。 迭代又开始了。 为了统一标准,W3C开发了HTML5,但迟迟未能实现。 迟来的谷歌认可。 在其他浏览器纷纷支持HTML5后,微软又发现自己孤身一人,份额不断萎缩。

2016年,Chrome浏览器份额超越IE,第二次浏览器大战结束。

浏览器大战极大地推动了技术进步。 正是Google开发的V8引擎,大大提高了JS的运行效率。 NodeJS有机会诞生,前端可以走向全栈。 虽然JS并没有你想象的那么慢。

温泉

2008年,HTML5草案提出,各大浏览器开始了抢先实现HTML5功能的良性竞争。 由于HTML5带来的后端代码复杂度的降低,为了寻求良好的可维护性和复用性,前端也不得不参考前端MVC进行设计和拆分。 后来出现了三大后端框架:Vue(2014)、React(2010)、AngularJS(2009)。

单页面应用返回空白HTML,并通过JS脚本动态生成内容,告别页面刷新。

后端不再负责模板渲染,前端和APP开始平等,后端API也可以通用化。 前端终于分离了。 (PS:最终目标是成为前端)

不过,由于SPA返回空HTML,所有JS也被打包到一个文件中,所有资源都需要一开始就加载。

这就迫使后端不得不对过于庞大的单页面应用进行拆分,框架的多页面概念就出现了,以及各种解决方案。

虽然很多网页在第一次加载的时候不需要太多的东西,比如峰会首页、帖子详情页,但是可以完全拆解,在新打开的页面上阅读时用户体验会更好(多页应用程序)。

再比如管理后台,可以将页框内各个菜单对应的管理页面移除并动态加载(导入)。

服务器端渲染

Server Side Render,服务器端渲染,简称SSR,也称为服务器端同构、直接输出,一般使用NodeJS实现。

这里的服务端渲染和之前的有所不同。 SSR会使用“脱水”后的首屏数据来渲染首屏页面并返回给客户端。 到达浏览器后,会注入浏览器干扰,保留单页应用的能力。 SEO 友好。 但学习成本高,限制也多。

我们看一下传统SPA和添加SSR的SPA在请求方面的区别:

客户端渲染

服务器端渲染

传统SPA可以更快地返回页面,请求响应时间更短; JS加载后开始渲染,黑屏时间较长,加载完成后用户感知的交互时间相对较早。

当SSR收到浏览器的请求时,首先从前端拉取首屏数据并渲染到页面上,然后返回。 请求响应时间较长; 因为节省了浏览器请求首屏数据的一段时间,所以白屏时间更短。 由于JS的异步加载,用户感知到的相对交互时间变得更晚。 但SSR通常在体验上更好。

在极端情况下,传统的SPA在用户眼中仍然会显示loading,而使用SSR的页面会显得“不动”。

很多时候SSR体验会更好,因为服务器承担了大部分渲染工作,这也导致服务器负载变得更高。 但在业务复杂的情况下,SSR首屏请求的socket数量过多,导致HTML返回速度变慢。

归根结底,SSR不能很好地应对复杂的业务情况,首屏加载的东西还是太多了。 那么我们如何缩短用户感知的死区时间呢?

IMWEB的企鹅教程落地SSR+PWA后,达到了几乎秒级的水平。

NodeJS

说完SSR,就必须要说NodeJS了。 NodeJS从2010年正式成立到现在已经11年了,NodeJS的诞生来自于Ryan Dahl的灵感(下图)。 他希望以非阻塞的方式完成所有事情,并且完全异步的方法可以处理特别大量的请求(高并发)。

NodeJS的出现,让后端向全栈发展迈出了一大步。 很多公司已经开始用NodeJS搞BFF(backend for frontend),我们也开始把Controller层放到NodeJS中处理,后端只负责基础业务数据。 这是当前的三层架构:

该架构在跨端时具有良好的适应性。 我们可以根据业务需求为不同的端设计不同的Controller和View,后台不需要改变。 这种架构节省了大量的沟通成本,前端专注于页面的展示,后端专注于业务逻辑。

ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段

当然,NodeJS也可以对前端数据进行预处理,前端可以根据自己的需求设计数据结构,打造页面开发和socket调试之间的闭环,为前端分担压力。

附加信息:第三次浏览器战争

智能手机的快速发展,这张图表现得淋漓尽致。 第三次浏览器大战是一场争夺移动市场份额的战争,而且也是一场持续不断的战争。

本尼迪克特·埃文斯:“移动正在吞噬世界。” “移动重塑了互联网。”

未来浏览器真正的对手不再是浏览器,而是结合了APP和网页优势的小程序等新兴技术。

未来

早在2009年,Facebook工程师就开发了bigPipe,使Facebook页面的打开速度提高了一倍。 bigPipe采用分块渲染的思想,将网页的渲染分成小块,服务器渲染出一块页面并发送给客户端。 他们直接拆掉了浴缸,打破了弱点效果。

服务器端渲染 VS 流式平铺渲染

11年后,也就是2020年12月,React团队提出了React Server Components,可以看作是一个可扩展的前端集成解决方案。 它的概念与bigPipe类似。 将组件放在服务器端进行渲染,可以节省向浏览器请求数据的成本。 有些运行时还可以保存在浏览器中,减少包大小(比如在服务器端渲染的markdownecmascript5兼容的浏览器,就不用再把工具库发送到浏览器了)。 React Server Components 的引入也同步了手动 Code Split。

React Server 组件原理

不同之处在于,React Server Components 返回带有结构和数据的自定义类似 JSON 的数据,而不是 HTML。

这种结构是将服务端渲染的核心(结构+数据)可视化,结合React的工作方式(如Suspense),从服务端平滑过渡到客户端,维护组件状态,并且可以更自由地组装服务器组件和客户端组件。

混合客户端和服务器组件

关于拆分的想法,让我想起了微后端。 尽管如今微后端仍然存在很多问题,但微应用即服务也是一种解决方案。 未来后端似乎会朝着“小而美”的方向发展,甚至会产生以服务器端组件为单位的包管理器。 网页的包大小将越来越小,更多的组件将直接从互联网上获取。

另外,我也很期待Web Components的发展。 有了本机支持,0kb 运行时间并非不可能。 长期必须分,长期必须组合,现有的很多后端框架也可以统一。 当然,如今的Web Components想要投入使用,首先离不开浏览器的支持,并且要有一个缓慢的过渡。 另外,兼容性也是一个大问题(最终还是伤害了程序员)。

结语

从JavaScript的诞生一路走来,从“发现问题——解决问题”的角度,我们听到了技术发展的原因和必然性。 2021年的今天,Web APP与原生APP的体验还是有些不同的。 也许将来会有小程序桌面APP,小程序可以统一; 也许会在PWA路上越走越远; 或者浏览器会开放更多原生的系统API,使用各种加载形式,然后模拟APP的各种功能。 体验与APP类似。

每个时代都会诞生很多技术,海浪冲走沙子,留下的只是这个时代独有的王者。 技术总是在变化。 重要的不是急于追赶技术的步伐,而是思考技术为什么会发生这样的变化,思考这样的进化形式的优点和缺点。 如果是你,你会如何解决当代科技的问题?

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 ecmascript ecmascript5 浏览器-什么是javaScipt?它可以应用于哪些字段 https://www.wkzy.net/game/135300.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务