什么是前端开发的 Critical Rendering Path

4 月 18 日
阅读 2 分钟
26
在 Web 前端开发中,Critical Rendering Path(关键渲染路径)是一个至关重要的概念,它影响着网页的加载速度和性能表现。关键渲染路径指的是浏览器从开始加载网页到网页首次可用的一系列步骤。优化这个过程可以显著提高网页的响应速度和用户体验。
封面图

什么是 Angular 项目的 code split?

4 月 17 日
阅读 2 分钟
21
在讨论 Angular 项目中的代码分割 (code splitting) 之前,我们先要了解其基本概念及重要性。代码分割是一种优化网页性能的技术,通过将应用程序的代码分成多个较小的块,这些块可以按需加载,而不是一开始就加载整个应用程序。在 Angular 中,代码分割通常与路由 (routing) 和懒加载 (lazy loading) 密切相关。

封面图

使用 AIGC 归纳一段新闻生成简报

4 月 17 日
阅读 6 分钟
17
登录百度智能云的控制台,创建一个新的应用,把生成的 API Key 和 API Secret key 抄下来,因为后续换取 access token,需要用这两个字段去交换。
封面图

如何更改 Spartacus Product carousel 的相对位置

4 月 17 日
阅读 2 分钟
18
在 SAP Commerce Cloud 中调整产品轮播(Product Carousel)中产品的相对位置,可以通过几种不同的方法实现。这些方法涵盖从通过 ImpEx 脚本直接修改数据模型,到在 CMS 管理控制台进行配置的操作。以下内容详细介绍了如何执行这些操作,包括具体的代码示例和步骤说明。
封面图

Commerce Cloud OCC CMS API 返回的 Product Carousel Component 数据

4 月 17 日
阅读 2 分钟
19
SAP Commerce Cloud 是一款强大的电子商务解决方案,广泛应用于全球各大小企业中,以实现其多渠道销售的需要。在 SAP Commerce Cloud 中,product categories 属性是核心功能之一,用于组织和管理产品目录结构,从而为用户提供清晰、高效的购物体验。通过合理利用 product categories 属性,企业能够更好地进行商品分类...
封面图

什么是 DNS_PROBE_FINISHED_NO_INTERNET 错误

4 月 17 日
阅读 2 分钟
32
在讨论 DNS_PROBE_FINISHED_NO_INTERNET 这个问题之前,我们需要明确了解几个相关的概念,包括 DNS 服务、浏览器的工作机制,以及网络连接的基本原理。
封面图

Spartacus cart item remove 不会进入到 59 行这个分支

4 月 17 日
阅读 2 分钟
19
在 Angular 的开发过程中,ReplaySubject 是一个极为有用的类,属于 RxJS 库中的一部分。它主要用于在多个组件或服务之间共享数据。与基本的 Subject 不同,ReplaySubject 能够记录并重放它发出的值给新的订阅者,即使这些值是在订阅之前发出的。
封面图

Spartacus cart list item 删除的实现原理

4 月 16 日
阅读 2 分钟
21
Remove url:Selector:cx-cart-item-list找到 Component 为 CartItemListComponent:selector 找错了,应该是这个:cx-cart-item-list-rowmarkAsDirty:在深入探讨 mark as dirty 的概念之前,我们需要明确它在计算机科学领域的广泛应用。mark as dirty(标记为脏)是一种常用的技术,用于优化数据处理、减少不必要的计...
封面图

KOI Backend - eventEmitter

4 月 16 日
阅读 3 分钟
20
本文介绍第二个环节。Web shop发送请求给WebSocket服务器:wsServer.js: 直接把请求通过eventEmitter抛一个事件出去:wsServer.js负责抛事件,不负责具体处理。具体处理交给application层面的wsServerforWebShop.js处理:来自Webshop的请求细节,line 120发送往Orchestra:在 Node.js 的广阔宇宙中,eventEmitter 是一...
封面图

KOI 后台新的架构下,webshop如何消费后台服务 - websocket 初始化

4 月 16 日
阅读 2 分钟
22
本文介绍图中绿色方框,Web shop是如何消费backend提供的微服务的。打开backend-ms repository的miniWebShop.html:通过这行代码建立和Web Socket服务器的连接:var socket = io('ws://127.0.0.1:8877');通过socket.emit API向Web服务器发送一个action,名称为requestFromWebShop, action的负载为oData。通过socket.on即...
封面图

WebShop WebSocket server 和 WebSocket 客户端的一对多关系维护

4 月 16 日
阅读 2 分钟
20
一个WebSocket服务器可以和多个WebSocket客户端连接。clientAddress:web socket服务器for Webshop的IP地址和端口号clientSocketID:web shop webpage的WebSocket ID:
封面图

KOI Orchestra 从微服务提供商获得结果,再发送回 WebSocket 服务器

4 月 16 日
阅读 2 分钟
18
Orchestra通过TCP 服务器接收微服务的响应:还是在TCPServer.js的handleInboundData里:和第二步骤相匹配,第五步也是接收数据,因此是inbound处理,通过后缀Response区分这是一个响应。找到对应的Web Shop的WebSocket服务器socket并发送数据。在深入探讨 Chrome 开发者工具的 Callstack 中 (anonymous) 显示的含义之前...
封面图

KOI 微服务提供者接收请求,提供服务并传回给 Orchestra

4 月 16 日
阅读 2 分钟
16
在technical stack的tcpClient.js里接受Orchestra发送过来的请求,然后通过事件messageFromOrchestra投递给具体的微服务实现:
封面图

Angular ngOnChanges(changes SimpleChanges) 的作用和使用场景

4 月 15 日
阅读 2 分钟
20
在深入探讨 ngOnChanges(changes?: SimpleChanges) 的作用和使用场景之前,我们需要明白 Angular 框架的基础和响应式编程原则。Angular 是一个由 Google 维护的开源前端框架,旨在帮助开发者通过使用 TypeScript 构建动态的单页应用(SPA)。它为开发者提供了一整套工具和设计模式,用于构建高效和可维护的应用程序。
封面图

Angular UntypedFormControl markAsDirty 方法的用途介绍

4 月 15 日
阅读 3 分钟
21
理解 markAsDirty 方法的使用场景对于精确控制 Angular 表单的状态非常关键,尤其是在实现复杂交互逻辑的应用中。markAsDirty 方法是 Angular 表单控件的一个功能,它用于手动将表单控件标记为 dirty,即用户已对表单控件进行了修改。在默认情况下,当用户改变一个表单控件的值时,Angular 会自动将该控件标记为 dirty。...

什么是 web 应用的 composable 特性

4 月 15 日
阅读 2 分钟
23
在讨论 Web 应用的 composable 特性之前,我们需要明确 composable 这个概念。在 Web 开发中,composable 描述的是一种能够将不同的组件(通常是 UI 组件)组合起来构建应用的能力。这种方式强调的是组件的复用性、可维护性以及灵活性。通过组合小而专一的功能组件,开发者可以构建出复杂且功能丰富的 Web 应用。
封面图

什么是 Web 应用开发领域的 Frontend Fragmentation(前端碎片化)现象

4 月 15 日
阅读 2 分钟
22
在探讨 Web 应用开发领域的 Frontend Fragmentation(前端碎片化)现象之前,我们需要先明确几个基本概念。Web 前端开发,简而言之,是构建和优化用户在浏览器或 Web 应用程序中的交互体验的技术和过程。它包括但不限于 HTML、CSS 和 JavaScript 的使用,以及各种框架和工具的利用。然而,正是这些技术的广泛和多样化,...
封面图

Spartacus Cart item 点击了 remove 之后 HTTP Delete 请求的触发逻辑 - Adapter

4 月 15 日
阅读 2 分钟
18
在深入探讨 SAP Spartacus Storefront 中的 OccCartEntryAdapter 功能和使用场景之前,我们首先需要了解 Spartacus 本身以及它在当今的电子商务解决方案领域中扮演的角色。SAP Spartacus 是一个开源的 JavaScript 前端框架,专为 SAP Commerce Cloud 创建。其设计理念是提供一种轻量级、可扩展且易于自定义的方法,以构...
封面图

Spartacus cart 点了 remove 之后的 HTTP Delete 请求是怎么触发的

4 月 15 日
阅读 4 分钟
27
url:/occ/v2/electronics-spa/users/current/carts/00002473/entries/0?lang=en&curr=USD
封面图

Spartacus empty cart 页面的显示逻辑

4 月 15 日
阅读 3 分钟
21
在深入探讨 SAP Spartacus Storefront 中 CartPageLayoutHandler 的功能和使用场景之前,让我们先对 Spartacus 项目有一个基本的了解。SAP Spartacus 是一个开源的 JavaScript 前端框架,旨在创建 SAP Commerce Cloud 的电子商务网站。它采用现代化的技术栈,包括 Angular、RxJS 和 Ngrx 等,为开发者提供灵活性和可扩展...
封面图

Angular UntypedFormControl 的使用场景介绍

4 月 15 日
阅读 2 分钟
21
在深入探讨 UntypedFormControl 的作用与使用场景之前,我们需要理解 Angular 表单的基础概念以及 UntypedFormControl 是如何在这个框架中扮演重要角色的。Angular 提供了两种不同的表单构建策略:响应式表单和模板驱动表单。UntypedFormControl 是响应式表单策略中的一个关键概念。
封面图

一个成都七中的初中生,出于兴趣爱好实现的 Win12 UI 页面效果,佩服佩服

4 月 15 日
阅读 5 分钟
46
这个开源项目,作者没有使用任何诸如 Angular,React 和 Vue 等前端开发框架,而是纯 HTML 加上 JavaScript 编程,对照着前段时间微软发布的 Windows 12 概念版(Powered by PowerPoint),在浏览器里以网页版的形式实现了出来。
封面图

如何检测浏览器是否支持最新的 image lazy loading 特性

4 月 5 日
阅读 2 分钟
17
在今天的技术讨论中,我们深入探讨 Angular 框架中一段非常精妙的代码。这段代码定义了一个自定义指令,旨在优化网页中图片的加载过程。通过这段代码的解析,我们不仅能够了解到 Angular 指令的强大功能,还能深入理解现代网页性能优化的关键技术之一:懒加载(Lazy Loading)。
封面图

什么是余弦相似度算法

4 月 5 日
阅读 2 分钟
56
余弦相似度(Cosine Similarity)是一种常用的度量两个非零向量之间相似度的方法,广泛应用于文本挖掘、推荐系统等领域。该算法通过测量两个向量之间的夹角的余弦值来评估它们的相似度。理论上,两个向量的方向越接近,它们的余弦相似度就越高。余弦值为 1 表示两个向量方向完全相同,为 0 表示两者正交,而为 -1 则表示...
封面图

前端 viewport 在 Image lazy loading 场景中扮演的作用

4 月 5 日
阅读 2 分钟
18
了解 viewport 的概念及其在图片懒加载(Image lazy loading)场景中的作用,对于开发高性能的网页和应用至关重要。viewport,简单来说,指的是用户在网页上能够看到的区域。不同设备的屏幕大小不同,导致 viewport 的大小也不尽相同。在移动设备上,尤其是智能手机和平板电脑上,viewport 的概念变得更加重要,因为这些...
封面图

前端应用实现 image lazy loading 的原理介绍

4 月 5 日
阅读 2 分钟
31
在现代的 web 开发中,提升页面性能是一个重要的议题,其中一个常见的实践就是图片的懒加载(lazy loading)。懒加载是一种优化网页或应用加载时间的技术,它的核心思想在于延迟加载页面上的某些资源(如图片、视频等),直到这些资源即将出现在用户的视口(viewport)中时才开始加载。这样做不仅可以减少无谓的数据传输...

TypeScript error TS7016 错误消息的含义

4 月 3 日
阅读 2 分钟
74
在 TypeScript 开发过程中,遇到各种错误提示是家常便饭的事情,理解这些错误及其背后的原因对于编写更健壯、易于维护的代码至关重要。本文将深入探讨 error TS7016 错误,这是 TypeScript 开发者在使用第三方库或自定义类型定义时常见的一个问题。
封面图

mime.js 工具库的使用场景

4 月 3 日
阅读 2 分钟
69
mime 库是一个强大的工具,用于处理 MIME 类型,可以帮助开发者识别文件的类型和扩展名。在 Web 开发和处理 HTTP 请求时,了解文件的 MIME 类型是非常重要的。mime 库提供了一个简单的 API 来查询文件的 MIME 类型或扩展名。
封面图

Angular 应用 node_modules 子文件夹 @types 的作用介绍

4 月 3 日
阅读 2 分钟
42
在深入讨论 @types 子文件夹的作用之前,我们需要明白 TypeScript 在现代 web 开发中的角色。TypeScript,作为 JavaScript 的一个超集,为开发者提供了类型检查和更高级的编程特性,这使得开发大型应用变得更加容易和可靠。然而,由于 JavaScript 库和框架默认不包含类型定义,这就是 @types 子文件夹发挥作用的地方。
封面图

生成 index.d.ts 文件的几种方式

4 月 3 日
阅读 2 分钟
49
生成 index.d.ts 这类类型定义文件的过程可以手动完成,也可以通过自动化工具辅助完成。这些文件为 TypeScript 提供了 JavaScript 库的类型定义,使得 TypeScript 用户能够利用 JavaScript 编写的库,同时享受到强类型语言的优势。本文将探讨两种主要的方法来生成这些类型定义文件:手动编写和使用自动化工具,同时深入...
封面图

serve-static Node.js 工具库的基本作用

4 月 3 日
阅读 2 分钟
48
在深入探讨 serve-static 这个 Node.js 的工具库之前,让我们了解一下它的基本作用:serve-static 是一个用于快速提供静态文件(如 HTML、CSS、JavaScript 文件)的中间件,常用于 Express 应用程序中。使用这个库可以极大地简化静态文件服务的配置过程。接下来,我们将通过不同的层面来探索 serve-static 的使用方法和...
封面图

关于 serve-static 的 index.d.ts 报错的问题分析

4 月 3 日
阅读 2 分钟
37
理解这条日志的含义,需要我们深入分析其组成部分和背后可能的原因。这条日志信息显然指向了一个 Node.js 项目中的一个具体错误,其指出了错误发生的文件路径和具体位置。接下来,我将逐步解析这条日志信息的各个方面,并解释可能的原因和解决方法,同时遵守你的要求,使解析过程既详细又不显得机械。

Angular module 的 forRoot 和 forChild 方法

3 月 25 日
阅读 3 分钟
51
在详细解析这段 Angular 代码之前,让我们首先理解几个关键的 Angular 概念,包括模块(Modules)、服务提供者(Providers)、工厂函数(Factory functions)、以及模块与服务初始化器(APP_INITIALIZER 和 MODULE_INITIALIZER)。理解这些概念对深入掌握 Angular 框架至关重要。通过这段代码,我们将深入探讨 OutletMod...
封面图

企业级前端应用的用户会话管理开发经验的一些分享

3 月 11 日
阅读 4 分钟
45
笔者之前在社区分享了自己作为一名企业级前端应用开发人员,从事一款名叫 Spartacus 的开源 Storefront 框架过程中积累下来的一些开发经验。