关于 JavaScript “工作证明(proof of work) “防抓取系统的思考

关于 JavaScript “工作证明(proof of work) “防抓取系统的思考

人们越来越多地使用基于 JavaScript 的“工作证明”系统来应对激进的大语言模型 (LLM) 和其他网络抓取器的问题,在这种系统中,您的网络服务器要求访问客户端运行一些 JavaScript 来解决挑战

这是 JavaScript 吗?

这是 JavaScript 吗?

当有人说”这只是 JavaScript”时,更明确的说法应该是”这只是适用于…的 JavaScript”,例如:这是适用于浏览器的 JavaScript; 它只是用于 Node 的 JavaScript;它只是用于 Next.js 的 JavaScript

为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?

为什么 2025/05/28 和 2025-05-28 在 JavaScript 中是不同的日子?

,JavaScript Temporal 即将推出:一套新的日期和时间 API,旨在取代 Date 对象。我们最初的整个日期解析问题源于时区歧义,但在很多情况下,我们希望将纯日期字符串完全视为纯日期。

JavaScript 的新超能力:显式资源管理

JavaScript 的新超能力:显式资源管理

显式资源管理提案引入了一种确定性方法,用于显式管理文件句柄、网络连接等资源的生命周期。该提案为语言增加了以下内容:using 和 await using 声明,当资源退出作用域时会自动调用处置方法;[Symbol.dispose]() 和 [Symbol.asyncDispose]() 符号,用于清理操作。asyncDispose]() 符号;

为 V8 提个醒: 通过明确的编译提示加快 JavaScript 启动速度

为 V8 提个醒: 通过明确的编译提示加快 JavaScript 启动速度

从长远来看,我们希望能够选择单个函数进行急切编译。这样,网络开发人员就能准确控制他们想要编译的函数,并挤出最后一点编译性能来优化他们的网页。敬请期待!

您的应用是否已安装?getInstalledRelatedApps() 会告诉您!

您的应用是否已安装?getInstalledRelatedApps() 会告诉您!

getInstalledRelatedApps()可让您的网页 检查您的移动应用还是桌面应用,在某些情况下, Web 应用 (PWA) 已安装在用户的设备上,您可以使用 自定义用户体验

使用 devicePixelContentBox 实现像素完美的渲染

使用 devicePixelContentBox 实现像素完美的渲染

从 Chrome 84 开始,ResizeObserver 支持一种名为 devicePixelContentBox 的新框测量,以测量元素的尺寸(以物理像素为单位)。这样可以渲染像素完美的图形,尤其是在高密度屏幕环境中。

WEB 异步剪贴板 API

WEB 异步剪贴板 API

通过 异步剪贴板 API 并提供了明确的权限模型, 屏蔽该网页Async Clipboard API 仅限于处理文本和图片 但支持情况各不相同。请务必仔细研究 了解以下各部分的兼容性概览。

创建离线备用页面

创建离线备用页面

即使没有网络连接,您仍然可以打开 Google 助理应用、输入 Slack 或启动 Zoom。您可能无法获得任何特别有意义的东西,甚至无法实现您想要实现的目标,但至少可以实现目标,并且应用处于控制之中。

停用鼠标加速以提供更好的 FPS 游戏体验

停用鼠标加速以提供更好的 FPS 游戏体验

对于某些第一方视角游戏(通常是第一人称射击游戏 [FPS]),原始鼠标输入数据用于在不进行加速调整的情况下控制相机旋转。相同的物理运动(慢或快)会导致相同的旋转。对专业游戏玩家而言,这样可以获得更出色的游戏体验和更高的准确度。

与 Service Worker 的双向通信

与 Service Worker 的双向通信

在本指南中,我们将探索不同的 API、Workbox 库以及一些高级用例,探索在 Window 和 Service Worker 上下文之间实现双向通信的不同方式。

使用 Service Worker 向页面广播更新

使用 Service Worker 向页面广播更新

在本指南中,我们将介绍如何使用标准浏览器 API 和 Workbox 库,了解在页面和 Service Worker 之间实现此类通信的不同方法。

现代 JavaScript 技术的发布、打包和安装

现代 JavaScript 技术的发布、打包和安装

超过 90% 的浏览器能够运行现代 JavaScript,但盛行的旧版 JavaScript 仍然是当今 Web 性能问题的一个主要原因。

使用 DataTransfer API 打破拖放和复制粘贴障碍

使用 DataTransfer API 打破拖放和复制粘贴障碍

拖放和复制粘贴互动通常用于页面中的互动,用于将简单文本从 A 传输到 B。但常常被忽视的一点是,能否进行同样的互动,而不仅仅局限于浏览器窗口。DataTransfer API 让用户能够在浏览器窗口之外共享数据。

使用 WebOTP API 在跨源 iframe 中填充动态密码表单

使用 WebOTP API 在跨源 iframe 中填充动态密码表单

短信动态密码(动态密码)通常用于验证电话号码,例如用作身份验证的第二个验证步骤,或用于在网络上验证付款。但是,如果在浏览器和短信应用之间切换,为了复制粘贴或手动输入动态密码,很容易出错,还会给用户体验带来不便。

JavaScript 事件深入探究

JavaScript 事件深入探究

JavaScript 事件处理通常很简单。在处理简单(相对扁平的)HTML 结构时尤其如此。不过,当事件通过元素层次结构传输(或传播)时,情况会更复杂一些。这通常是开发者联系 stopPropagation() 和/或 preventDefault() 来解决所遇到的问题时

使用 CSS 模块脚本导入样式表

使用 CSS 模块脚本导入样式表

借助新的 CSS 模块脚本功能,您可以使用 import 语句加载 CSS 样式表,就像加载 JavaScript 模块一样。然后,样式表可以像可构造的样式表一样应用于文档或shadow roots

JavaScript 全局和局部变量范围

JavaScript 全局和局部变量范围

本文介绍了不同类型的范围。JavaScript 作用域是 Web 开发中更高级的概念之一,因此您应该已通读此内容并花时间了解了这个主题。

使用 Fetch API 时实现错误处理

使用 Fetch API 时实现错误处理

本文介绍了使用 Fetch API 时的一些错误处理方法。通过 Fetch API,您可以向远程网络资源发出请求。当您进行远程网络调用时,您的网页可能会受到各种潜在网络错误的影响。

新 JavaScript Set 方法

新 JavaScript Set 方法

本文适合初学 JavaScript 中的 Set 并希望了解如何使用这些新 JavaScript 方法的读者阅读。我将通过基本示例强调使用这些方法的一些优势,以说明为什么您可能会选择这些方法而不是构建自己的实现。

使用 requestVideoFrameCallback() 对视频执行高效的每视频帧操作

使用 requestVideoFrameCallback() 对视频执行高效的每视频帧操作

HTMLVideoElement.requestVideoFrameCallback() 方法允许网页创作者注册一个回调,该回调在向合成器发送新视频帧时在渲染步骤中运行。这样一来,开发者就可以对视频执行高效的每视频帧操作,例如视频处理和在画布上绘制、视频分析或与外部音频源同步。

什么是 Source maps 源代码映射?

什么是 Source maps 源代码映射?

Source maps 源代码映射是现代 Web 开发中的重要工具,可以大幅简化调试工作。本页面介绍了有关Source maps 源代码映射的基础知识、其生成方式,以及源代码映射如何改善调试体验。

使用存储分区时的最大 IndexedDB 性能

使用存储分区时的最大 IndexedDB 性能

无论是从同一网站还是跨网站,并发使用 IndexedDB 的速度都更快。这篇博文提供了所有详细信息,并说明了您需要执行哪些操作才能充分利用这一变更(Chrome 126 及以上版本均提供)。

IndexedDB 用法介绍

IndexedDB 用法介绍

IndexedDB 是一个大规模的 NoSQL 存储系统,几乎可以存储用户浏览器中的任何内容。除了常见的搜索、获取和放置操作之外,IndexedDB 还支持事务,非常适合存储大量结构化数据。

使用限制属性安全地进行弹出式交互

使用限制属性安全地进行弹出式交互

同时在弹出式窗口和主页上设置 COOP: restrict-properties 不会导致限制。如果仅在弹出式窗口或主页面上设置此政策,系统将禁止通过 opener 访问除 postMessage 和 closed 以外的属性,即使这两个项目同源也是如此。

浏览器中的画中画模式

浏览器中的画中画模式

随着近期(甚至之前)推出的 Document Picture-in-Picture API 推出,Web 开发者越来越希望能够在用户从当前标签页切换焦点时自动打开画中画窗口。这对于视频会议 Web 应用尤为有用

使用 Puppeteer 测试网络蓝牙

使用 Puppeteer 测试网络蓝牙

这篇博文详细介绍了如何使用 Puppeteer 运行和测试支持蓝牙的 Web 应用。其中的关键部分是 Puppeteer 能够操作 Chrome 的蓝牙设备选择器。

让开发人员更高效的 JavaScript 字符串方法

让开发人员更高效的 JavaScript 字符串方法

它通过内置的 String 对象引入了多种字符串方法,使开发人员能够高效地处理字符串数据。这些高效的字符串方法促使开发人员使用 JavaScript 解决文本处理问题,而无需使用外部库或从头开始编写冗长的代码。

解码为什么 JS 中的 0.6 + 0.3 = 0.89999999999999 以及如何解决?

解码为什么 JS 中的 0.6 + 0.3 = 0.89999999999999 以及如何解决?

了解 IEEE 754 浮点数,逐步探索 0.1+0.2 如何等于 0.30000000000000004

用 JavaScript 实现的 17 个改变世界的方程式

用 JavaScript 实现的 17 个改变世界的方程式

受伊恩-斯图尔特(Ian Stewart)所著《改变世界的 17 个方程式》(17 Equations That Changed The World))一书的启发,本文将探讨如何用 JavaScript 编写这些重要的数学方程式。

Dropbox:我们如何将 JavaScript 打包程序的大小减少 33% 的

Dropbox:我们如何将 JavaScript 打包程序的大小减少 33% 的

在向所有 Dropbox 用户推出 Rollup 后,我们发现该项目将 JavaScript 捆绑程序的大小减少了 33%,JavaScript 脚本总数减少了 15%,TTVC 也有适度改善。通过自动代码拆分,我们还大大提高了前端开发速度,开发人员无需在每次更改时手动调整捆绑定义。

了解 JavaScript 中的事件传播:冒泡与捕获详解

了解 JavaScript 中的事件传播:冒泡与捕获详解

了解 JavaScript 中的事件传播对于创建交互式和响应式网络应用程序至关重要。事件冒泡和捕获是决定事件如何遍历 DOM 层次结构的两种机制。通过有效利用这些概念,开发人员可以构建更健壮、更易维护的代码库。

如何在浏览器窗口之间共享状态和传输信息

如何在浏览器窗口之间共享状态和传输信息

Worker 本质上是运行在另一个线程上的第二个脚本。虽然它们无法访问 DOM(因为它们存在于 HTML 文档之外),但它们仍然可以与主脚本通信。它们主要用于通过处理后台作业(如预先抓取信息)或处理流式日志和轮询等不太重要的任务来缓解主脚本。

JavaScript 严格模式(Strict Mode)的几种开启方法及注意事项

JavaScript 严格模式(Strict Mode)的几种开启方法及注意事项

三种情况是:1)全局代码;2)eval 代码;3)函数代码,当其中任何一种代码以 “use strict “字符串开头时,整个代码都将以严格模式运行。

JavaScript 中对 Unicode 进行 base64 编码时需要注意的问题

JavaScript 中对 Unicode 进行 base64 编码时需要注意的问题

如果在解码后取最后一个字符(�)并检查其十六进制值,你会发现它是\uFFFD,而不是原来的\uDE75。虽然没有失败或出错,但输入和输出数据都发生了静悄悄的变化。为什么会这样?


京ICP备12002735号