国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

為什么我對(duì)JavaScript的未來(lái)持樂(lè)觀態(tài)度?

開發(fā) 前端
這是重點(diǎn):這不僅僅關(guān)乎基礎(chǔ)設(shè)施。還關(guān)乎那些擁抱這些同樣的 Web API 并幫助成千上萬(wàn)的新開發(fā)人員學(xué)習(xí)一次并寫在所有地方的框架。

Lee Robinson 寫了一篇《Why I'm Optimistic About JavaScript's Future》 表達(dá)對(duì) JavaScript 未來(lái)的看好。

正文開始...

我對(duì)JavaScript持樂(lè)觀態(tài)度。

開發(fā)人員希望編寫 JavaScript,并希望它能在瀏覽器、服務(wù)器或 Edge運(yùn)行。

盡管有種種怪異和不完善之處,但由于其內(nèi)置的增長(zhǎng)(它在瀏覽器中)、其龐大的工具和庫(kù)生態(tài)系統(tǒng)以及TypeScript的持續(xù)增長(zhǎng)和采用,JavaScript的采用率繼續(xù)上升。越來(lái)越多的開發(fā)者能夠?qū)W習(xí)一個(gè)API(如Request或Response),并在所有地方重復(fù)使用相同的知識(shí)。

擁有一套約定俗成的通用API(即標(biāo)準(zhǔn))和支持相同接口的平臺(tái)(如跨瀏覽器支持),意味著網(wǎng)絡(luò)開發(fā)者現(xiàn)在可以一次學(xué)習(xí),到處編碼。

本文將概述近期在瀏覽器、服務(wù)器和 edge 對(duì) Web 平臺(tái)所做的改進(jìn)。

JavaScript:在瀏覽器中

今天,Web 開發(fā)人員編寫特定于供應(yīng)商的 JavaScript 或特定于供應(yīng)商的 CSS 選擇器的時(shí)間比以往任何時(shí)候都更少。

function isIE11() {
return !!window.MSInputMethodContext && !!document.documentMode;
}

我們已經(jīng)逃離了維持元素長(zhǎng)寬比的padding hacks的世界:

@supports not (aspect-ratio: 16/9) {
.aspectRatio {
overflow: hidden;
padding-bottom: 56.25%;
height: 0;
}
}

兩個(gè)融合的趨勢(shì)使這成為可能:

  • Internet Explorer 的死亡:現(xiàn)在,IE 11 已正式退役,Web 開發(fā)人員可以編寫更少的特定于供應(yīng)商的 CSS,從而使樣式表更小,hack 更少。
  • 瀏覽器引擎對(duì)齊:三大瀏覽器引擎(Chromium/Chrome、Gecko/Firefox和Webkit/Safari)現(xiàn)在對(duì)JavaScript、CSS和Web API的跨瀏覽器支持是我們見過(guò)的最好的。為Interop項(xiàng)目點(diǎn)贊。

現(xiàn)在,當(dāng)然,它在各瀏覽器引擎中并不完美,也不可能永遠(yuǎn)完美。但這是目前最好的,我很樂(lè)觀。由于不需要花一周的時(shí)間去研究深?yuàn)W的IE錯(cuò)誤,數(shù)千(或數(shù)百萬(wàn))的開發(fā)者時(shí)間將被累計(jì)節(jié)省。

下面是一個(gè)例子,說(shuō)明這種排列組合如何使所有的 web 開發(fā)者受益。想象一下,你是一個(gè)框架的作者,試圖編寫一個(gè)可重復(fù)使用的圖像組件,以幫助成千上萬(wàn)的開發(fā)人員在使用圖像時(shí)獲得良好的性能。在2020年,就在幾年前,你需要圍繞 web 平臺(tái)開展工作。

加載圖片而不引起布局變化,正確地保持長(zhǎng)寬比,并且不因圖片的大小/重量而降低頁(yè)面的初始加載性能,這很難在所有主要的瀏覽器上實(shí)現(xiàn)支持。這導(dǎo)致開發(fā)者要么忽視了這些問(wèn)題,要么框架編寫的組件抽象產(chǎn)生了這樣的代碼。

<span> <-- needed to maintain aspect ratio
<span> <-- needed to maintain aspect ratio, CSS padding hacks
<img src="" style="" /> <-- inline styles to prevent layout shift
<noscript>...</noscript> <-- JS needed for IntersectionObserver
</span>
</span>

但2022年情況就不同了。現(xiàn)在有跨瀏覽器支持:aspect-ratio,防止布局變化的寬/高屬性,本地圖像惰性加載,以及純** CSS/SVG-based** 模糊圖像占位符。上述代碼可以刪除包裝元素,并在不需要運(yùn)行時(shí) JavaScript 的情況下工作。

<img
alt="A kitten"
decoding="async"
height="200"
loading="lazy"
src="https://placekitten.com/200/200"
style="aspect-ratio: auto 1 / 1"
width="200"
/>

JavaScript:在服務(wù)器上

在客戶端和服務(wù)器上都可以運(yùn)行的同構(gòu) JavaScript(即可以在客戶端和服務(wù)器上運(yùn)行的代碼)一直是許多 Web 開發(fā)人員的理想狀態(tài)。學(xué)習(xí)一次,寫在所有地方,對(duì)吧?直到最近,Node.js 和 Web 平臺(tái)還未對(duì)齊。

考慮通過(guò) HTTP 獲取數(shù)據(jù)。在瀏覽器中,我們有 Web Fetch API。在 Node.js 18 之前,沒有內(nèi)置的獲取數(shù)據(jù)的方案。使用 fetch? 需要使用 node-fetch? 或 undici 等包,它們的 API 類似但略有不同,通常是以不明顯的方式使用的。

這種平臺(tái)之間的不對(duì)齊意味著用于編寫同構(gòu) JavaScript 的工具(例如 Next.js)需要添加 polyfill,以便開發(fā)人員可以在客戶端和服務(wù)器上使用 fetch。使用 Node.js 18,這些工具現(xiàn)在可以刪除用于 polyfill 平臺(tái)差異的額外 JavaScript,最終導(dǎo)致所需的 JavaScript 更少。

我對(duì)服務(wù)器上的 JavaScript(和 TypeScript)感到樂(lè)觀。這不僅僅是 fetch。還有 Request、Response 和其他100多個(gè)現(xiàn)在可在瀏覽器和 Node.js 中使用的 API。瀏覽器供應(yīng)商和構(gòu)建服務(wù)器基礎(chǔ)設(shè)施的公司現(xiàn)在比以往任何時(shí)候都更加密切地合作,提供一組可在所有地方運(yùn)行的標(biāo)準(zhǔn) API,包括 edge  計(jì)算平臺(tái)。

JavaScript: 在  Edge 中

Edge computing,這種常常被誤解的最新運(yùn)行 JavaScript 的目標(biāo),在三個(gè)(瀏覽器、服務(wù)器、edge)中標(biāo)準(zhǔn)化最少。

將 edge 視為最高抽象層次可能會(huì)有所幫助,在這里你將把所有時(shí)間都花在業(yè)務(wù)邏輯上。

圖片

Edge并不是全新的東西,而是從現(xiàn)有的Node.js世界中刻意的、有意的取舍。

你想寫JavaScript,但  edge compute 基礎(chǔ)設(shè)施需要(相當(dāng)大的)Node.js API 表面積的較小子集。通過(guò)為 Node.js API 的子集做出這種權(quán)衡,你的可以始終保持快速的冷啟動(dòng)和更具成本效益的計(jì)算工作負(fù)載。這聽起來(lái)很好。

讓我們看一個(gè)例子。在這種情況下,我將使用 Vercel Edge Function。但也可以是其他邊緣計(jì)算平臺(tái),如 Cloudflare 或 Deno。對(duì)我來(lái)說(shuō),這段代碼最好的部分實(shí)際上是它相當(dāng)無(wú)聊。它看起來(lái)像 Node.js。

export const config = {
runtime: 'edge'
}

// Web standard Request API
export default function handler(req: Request) {
// Web standard URL API
const { searchParams } = new URL(req.url)
const name = searchParams.get('name')

// Web standard Fetch API
const req = await fetch('https://...', { body: { name } })
const data = await req.json()

// Web standard Response (.json is new)
// https://github.com/whatwg/fetch/issues/1389
return Response.json(data);
}

這是重點(diǎn):這不僅僅關(guān)乎基礎(chǔ)設(shè)施。還關(guān)乎那些擁抱這些同樣的 Web API 并幫助成千上萬(wàn)的新開發(fā)人員學(xué)習(xí)一次并寫在所有地方的框架。

這段代碼可以與Next.js一起工作。或SvelteKit。混搭。新鮮。或者下一個(gè)建立在同一套標(biāo)準(zhǔn)API基礎(chǔ)上的新Web框架。

作為一名 Web 開發(fā)者,這是一個(gè)多么不可思議的時(shí)代。

原文:https://leerob.substack.com/p/why-im-optimistic-about-javascripts

責(zé)任編輯:武曉燕 來(lái)源: 大遷世界
相關(guān)推薦

2022-06-27 06:06:46

勒索軟件網(wǎng)絡(luò)攻擊

2025-02-05 11:27:03

2019-03-12 09:22:22

Web 開發(fā)代碼

2012-08-15 10:50:51

IE6

2020-03-09 10:10:02

AI 數(shù)據(jù)人工智能

2019-08-28 10:53:35

JavaScriptOptional Ch代碼

2024-08-26 10:06:58

2019-10-23 15:53:16

JavaScript可選鏈對(duì)象

2015-11-05 13:24:59

EMVVisa芯片卡支付安全

2019-09-02 09:30:40

2025-08-20 08:21:16

2017-07-20 11:18:38

臺(tái)式電腦娛樂(lè)

2017-06-26 15:24:13

2021-09-06 10:47:18

5G 5G網(wǎng)絡(luò)制造業(yè)

2018-04-19 06:03:25

2023-12-13 13:03:28

甲骨文云計(jì)算

2023-10-17 09:42:34

2017-05-15 16:12:55

后端編程GUI

2021-03-03 13:54:31

TypeScript編譯器Chirag
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩av电影在线播放| 日韩在线免费视频观看| 国产成人精品在线看| 91在线一区| 欧美日韩在线精品一区二区三区激情综| 一区二区精品在线| 国产精品视频区| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 911精品产国品一二三产区| 99精品欧美一区二区三区小说 | 国产精品igao视频| 精品亚洲一区二区三区| 夜夜精品视频一区二区| 国产精品一品视频| 女同性一区二区三区人了人一 | 日韩一区二区三区在线视频| 亚洲欧美怡红院| 国产一二三精品| 伊人久久亚洲热| 色狠狠久久av综合| 日本精品网站| 岛国成人毛片| 在线中文字幕资源| 日韩欧美精品在线观看视频| 三区精品视频| 7777精品伊久久久大香线蕉语言| 高清亚洲成在人网站天堂| 亚洲精品视频久久| 日韩欧美亚洲一区二区| 日韩欧美亚洲成人| 亚洲精品国产一区二区精华液 | 性欧美极品xxxx欧美一区二区| 亚洲精品一区二区三区樱花 | ccyy激情综合| sese综合| 国产精品刘玥久久一区| 中国动漫在线观看完整版免费| 日日橹狠狠爱欧美超碰| 亚洲第一综合网站| 狠狠干一区二区| 91精品免费视频| 日韩av手机在线看| 高清在线视频日韩欧美| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品久久久久久久久久久久久 | 欧美日韩高清在线| 亚洲线精品一区二区三区 | 视频一区在线视频| 自由日本语亚洲人高潮| 精品久久成人| 欧美色图婷婷| 成人精品动漫一区二区三区| 国产精品xnxxcom| www.久久| 色综合天天色| **在线精品| 色老太综合网| 中文在线8资源库| 乱馆动漫1~6集在线观看| 搞黄网站在线观看| 老司机在线看片网av| 在线免费观看的av网站| a√资源在线| 日本在线免费网| 嫩草在线视频| 成人ww免费完整版在线观看| 黄色在线观看网站| 国产午夜精品久久久久免费视| 欧美成人二区| 麻豆av在线导航| 美女黄视频在线观看| 午夜小视频在线| 秋霞午夜在线观看| 麻豆网站在线| 中中文字幕av在线| 青春草视频在线| 欧美videossex另类| 丁香影院在线| 松下纱荣子在线观看| gogo亚洲高清大胆美女人体| 国产精品久久乐| 欧美二区观看| 久久精品亚洲成在人线av网址| 一呦二呦三呦国产精品| 日韩欧美高清在线播放| 欧美日韩一区自拍| 久久精品一区| 国产毛片精品视频| 久久久一区二区| 亚洲欧美在线观看| 欧美日韩精品在线视频| 大荫蒂欧美视频另类xxxx| 欧美日韩在线播| 欧美www视频| 亚洲午夜精品久久久久久久久久久久| 日韩视频―中文字幕| 久久久久久综合网天天| 国产成人亚洲综合青青| 亚洲一区二区三区视频| 国内一区二区在线视频观看| 久久人人九九| 国产精品av免费| 日韩精品一区二区三区久久| 很黄很污的网站| 嫩草研究院在线观看| 少女频道在线观看高清| 国产一区精品福利| 女人av一区| 夜夜嗨一区二区三区| 国产精品自拍av| 国产精品视频九色porn| 疯狂蹂躏欧美一区二区精品| 91精品国产一区二区三区蜜臀| 日韩精品一区二区三区老鸭窝| 伊人久久大香线蕉av一区二区| 欧美激情精品久久久久久大尺度| 国产精品视频26uuu| 日韩av大全| 日本精品免费在线观看| 国产91久久久久蜜臀青青天草二| 69久久久久| 福利一区视频| 欧美日韩一区二区综合| 日日摸夜夜添夜夜添国产精品| 99天天综合性| 亚洲成av人片| 亚洲激情视频在线播放| 午夜精品久久久久久久白皮肤| a级国产乱理论片在线观看99| 中文字幕一区二区三区有限公司 | 国产免费成人在线视频| 黑人巨大精品欧美一区免费视频| 精品国产伦理网| 色综合天天综合网国产成人网| 成人激情黄色网| 日本一级淫片演员| 国产免费福利网站| 国产偷倩在线播放| 日韩动漫一区| 久久久久久久欧美精品| 国产欧美一区二区三区在线看蜜臀 | 无限国产资源| 日本性爱视频在线观看| 欧美日韩黄色| 中文字幕乱码亚洲无线精品一区| 久久av资源网| 亚洲黄色录像片| 亚洲成人黄色在线观看| 久久久午夜视频| 免费日韩av电影| 亚洲无吗一区二区三区| 老司机在线视频二区| 九九九九九九精品任你躁| 亚洲视屏一区| 国产日韩欧美电影| 欧美一区二区三区免费在线看| 欧美激情国产高清| 欧美日韩免费观看一区| 免费羞羞视频网站| 黄色软件视频在线观看| 日韩在线观看一区| 成人性生交大片免费看视频在线| 欧美日韩另类视频| 久久国产视频网站| 欧美精品一区二区视频 | 久久99精品国产.久久久久久| 亚洲激情自拍偷拍| 日韩精品极品毛片系列视频| 成人两性免费视频| 青草视频在线观看视频| 日韩精品福利| 久久久久久亚洲精品美女| 国产一区二区高清| 1000部国产精品成人观看| 日韩精品在线私人| 91久久精品一区二区别| 天天操,天天操| 国产精品电影| 欧美激情一区| 亚洲欧美福利一区二区| 色婷婷成人综合| 日本精品免费| 免费在线国产| 日韩高清一级| av中文一区二区三区| 精品久久一二三区| 北条麻妃高清一区| 秋霞福利视频| 亚洲网站免费| 久久99热国产| 欧美精品18+| 91青草视频久久| 2019一级黄色毛片免费看网| 开心久久婷婷综合中文字幕| 日本欧美一区二区三区| 欧美影院一区二区| 国产精品天天狠天天看| 羞羞小视频视频| 国产精品一区二区精品| 国产精品一区二区久久不卡|