Month: 8月 2022

HTTP/3 正式发布,有哪些站点提速了?

💡 HTTP/3 是超文本传输协议 (HTTP) 的第三个版本,以前称为 HTTP-over-QUIC。
QUIC 最初由 Google 开发,是 HTTP/2 的继承者。Google 和 Facebook 等已经使用 QUIC 来加速网络。
HTTP 简史

对于游戏开发者来说,重要的协议是UDP(用户数据报协议)。UDP是快速、即发即弃的标准:你在网络上扔了一个数据包,它就被抓住或者有时被丢掉了。

像Web这样要求稳定的系统,正确使用的底层协议是TCP(传输控制协议)。这是一个更正式的系统,它保证了数据包的交付与正确顺序。TCP 创建了可靠连接,后来又创建了可靠的信息流。

随后,它们被正式命名为“TCP/IP 堆栈”。

后来,基于 TCP/IP 编写的WWW和 HTTP 成为互联网的主要用途。另一个缺失的首字母缩略词是TLS(传输层安全),它提供了加密相关元素,并成为事实上的安全标准。

而在那个年代里, PC 之间的连接通常是有线的,任何损失都是由于旧铜线上的噪音造成的。

TCP 协议非常适合收集偶尔出错的数据包,而随着Web的发展使用 UDP 协议逐渐减少。

进入QUIC

今天的互联网已经进入一个发展非常不同的场景了。

比如现在家中的 PC

Redis 要被替代了?

今年年中,一位前谷歌、前亚马逊的工程师推出了他创作的开源内存数据缓存系统 Dragonfly,用 C/C 编写,基于 BSL 许可(Business Source License)分发。

根据过往的基准测试结果来看, Dragonfly 可能是世界上最快的内存存储系统,它提供了对 Memcached 和 Redis 协议的支持,但能够以更高的性能进行查询,运行时内存消耗也更少。

与 Redis 相比,Dragonfly 在典型工作负载下实现了 25 倍的性能提升;单个 Dragonfly 服务器每秒可以处理数百万个请求;在 5GB 存储测试中,Dragonfly 所需的内存比 Redis 少 30%。…

Go 编程语言的真正优势是什么?

Google 的Go 语言(又名Golang )在 2022 年 3 月发布 1.18 版,在其十多年的发展历程中,已经从对 alpha 极客的好奇发展成为经过实战考验的编程语言,背后是一些世界上最重要的语言。

为什么Docker和Kubernetes等项目的开发者会选择 Go ?Go 的定义特征是什么,它与其他编程语言有什么不同,最适合构建什么样的项目?

在本文中,我们将探讨 Go 的功能集、最佳用例、语言的遗漏和限制,以及 Go 的发展方向。

Go 语言小而简单

Go,是由谷歌员工开发的,主要是长期的 Unix 大师和谷歌杰出工程师 Rob Pike,但严格来说,它并不是一个“谷歌项目”。相反,Go 是作为一个社区主导的开源项目开发的,由领导层带头,他们对 Go 的使用方式和语言的发展方向有强烈的看法。

Go 意味着易于学习、易于使用并且易于其他开发人员阅读,Go 没有大量的功能集,尤其是与 C++ 等语言相比。

Go 的语法让人想起 C,这使得长期 C

在页面关闭时,前端上传监控数据的4个解决方案

概览

本文以 “前端监控上报数据” 的业务场景,重点解析在 页面实例关闭 时,如何将监控数据上传到服务端的解决方案。
其中,涉及到4种方案,分别为:

  • 同步XMLHttpRequest
  • img.src
  • navigator.sendBeacon
  • fetch keepalive

同步XMLHttpRequest

const data = JSON.stringify({
			  time: performance.now()
			});

var xhr = new XMLHttpRequest();

// 第三个参数false,表示当前请求是同步
xhr.open('post', 'http://api.wangxiaokai.vip/test'

javascript 异步操作的6种方法

异步操作的模式:

1 回调函数:callback
2 事件监听:onXxxx,addEventListener.
3 发布/订阅(设计模式)

4 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象

5 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同,Generator 函数将 JavaScript 异步编程带入了一个全新的阶段。

6 async 函数:ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是什么?一句话,它就是 Generator 函数的语法糖。

 

当然 .定时器和ajax也可以看作是.

更多请查看

https://www.php.cn/website-design-ask-488572.html

https://blog.csdn.net/ZYS10000/article/details/104601839/

docker常用笔记汇总

一 常用命令使用

docker version 查下docker版本

systemclt start docker 启动容器

docker search 镜像搜索

docker images 列出镜像

docker pull 镜像名 获取镜像

docker pull busybox:latest 最新镜像获取

docker save busybox:latest -o busybox.tar

导出镜像docker rmi busybox

删除镜像docker load -i busybox.tar

导入镜像docker run --name busybox_v1(自定义容器名字) busybox:latest(镜像名字)…

git 命令 ——git status、git diff

前言

当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次 commit。上述任务使用 git status 都可以帮我们解决。但是想要知道文件内部改了哪些地方 git status 就无能为力了。git status 最多只告诉你改没改,改哪了不知道。git diff 可以解决这个问题。

git status

git status 命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出。 运行 git status -s ,状态报告输出如下:…

他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js

他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!_第1张图片

刚开源不到一个月就获得了 19.5k star!看起来马上就会成为 Node.js 和 Deno 的一大竞争对手了!

和传统的 Node.js 这种传统的 javaScript 运行时不同,Bun.js 直接内置了打包器、转译器、任务运行器和 npm 客户端,这意味着你不再需要 Webpack/Rollup/esbuild/Snowpack/Parcel/Rome/swc/babel 就可以直接运行 TypeScript、JSX!…