- WebSocket 可以在用户的浏览器和服务器之间打开交互式通信会话,浏览器可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。 WebSocket 可以在用户的浏览器和服务器之间打开交互式通信会话,浏览器可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。
- Angular SSR 只负责渲染 initial page,一旦加载了初始页面,客户端 Angular 应用程序就会接剩下的交互,然后客户就可以进行 SPA 导航,并通过 ajax 调用后台 API。Angular SSR 需要注意的开发关键点。如何检查一个网站是 http1.1 还是 http1.0?ng serve 处于 dev 用途的 express 服务器:在 Chrome 开发者... Angular SSR 只负责渲染 initial page,一旦加载了初始页面,客户端 Angular 应用程序就会接剩下的交互,然后客户就可以进行 SPA 导航,并通过 ajax 调用后台 API。Angular SSR 需要注意的开发关键点。如何检查一个网站是 http1.1 还是 http1.0?ng serve 处于 dev 用途的 express 服务器:在 Chrome 开发者...
- 笔者从 2020 年疫情爆发之前,一直从事后端开发工作。2020 年因为工作原因,加入了 SAP 一个代号为 Spartacus 的开源项目的开发团队。这个项目是一个基于 Angular 的电商 Storefront 框架,其代码贡献者来自全世界各个地区。实际上,这个项目的开发工作由六个敏捷开发团队组成,笔者是唯一一位来自 APJ 即亚太地区的开发人员。从此,我开启了为期两年多,一直持续到现... 笔者从 2020 年疫情爆发之前,一直从事后端开发工作。2020 年因为工作原因,加入了 SAP 一个代号为 Spartacus 的开源项目的开发团队。这个项目是一个基于 Angular 的电商 Storefront 框架,其代码贡献者来自全世界各个地区。实际上,这个项目的开发工作由六个敏捷开发团队组成,笔者是唯一一位来自 APJ 即亚太地区的开发人员。从此,我开启了为期两年多,一直持续到现...
- 本文分享笔者在 Angular 项目中使用到的 rxjs 两大类 Observable 操作符的经验介绍。 Observable 生产的数据,应该提供开发人员足够的自由度,对这些数据进行各种处理,比如 map / transform 等等。这就是 Rxjs Operator 大展身手的地方。 本文分享笔者在 Angular 项目中使用到的 rxjs 两大类 Observable 操作符的经验介绍。 Observable 生产的数据,应该提供开发人员足够的自由度,对这些数据进行各种处理,比如 map / transform 等等。这就是 Rxjs Operator 大展身手的地方。
- 前言 浏览器兼容性一直是前端开发中不得不面对的一个问题。而最突出的就是IE。对绝大多数公司来说,兼容IE6的性价比已经很低,而IE7则几乎已经绝迹。所以,常见的兼容性下限是IE8。这也正是Angular1.2x的兼容性目标,Angular团队声明:Angular的持续集成服务器会在IE8下运行所有的测试。但这些测试不会运行在IE7及以下版本,它们也不会保证Angular将会工作在这... 前言 浏览器兼容性一直是前端开发中不得不面对的一个问题。而最突出的就是IE。对绝大多数公司来说,兼容IE6的性价比已经很低,而IE7则几乎已经绝迹。所以,常见的兼容性下限是IE8。这也正是Angular1.2x的兼容性目标,Angular团队声明:Angular的持续集成服务器会在IE8下运行所有的测试。但这些测试不会运行在IE7及以下版本,它们也不会保证Angular将会工作在这...
- 前言 在修复控制角标正确变化过程中,发觉前端代码组织层次出现了严重问题。传递和共享数据时自己使用的是rootScope,为此造成了全局变量空间的污染。根据《AngularJs深度剖析与最佳实践》,如果两个控制器的协作存在大量的数据共享和交互可以利用Factory等服务的“单例”特性为它们注入一个共享对象来传递数据。而自己在使用rootScope时,出现了变量不一致的情况。如下图所示... 前言 在修复控制角标正确变化过程中,发觉前端代码组织层次出现了严重问题。传递和共享数据时自己使用的是rootScope,为此造成了全局变量空间的污染。根据《AngularJs深度剖析与最佳实践》,如果两个控制器的协作存在大量的数据共享和交互可以利用Factory等服务的“单例”特性为它们注入一个共享对象来传递数据。而自己在使用rootScope时,出现了变量不一致的情况。如下图所示...
- 需求 实现生成的二维码包含订单详情信息。思路获取的内容数据如下: 现在可以获取到第一级数据,第二级数据data获取不到。利用第一级数据的获取方法获取不到第二级数据。for(i in data){alert(i); //获得属性 if(typeof(data[i]) == "object"){var tmp = data[i];for(j in tmp... 需求 实现生成的二维码包含订单详情信息。思路获取的内容数据如下: 现在可以获取到第一级数据,第二级数据data获取不到。利用第一级数据的获取方法获取不到第二级数据。for(i in data){alert(i); //获得属性 if(typeof(data[i]) == "object"){var tmp = data[i];for(j in tmp...
- 假设我们要为 Spartacus UI 开发一个新功能,首先,这个新功能,应该放到 feature library 文件夹里:这个新功能的入口,放置到 Feature Module 中。新功能通过 public_api.ts 将公有功能暴露给外部消费者。后者从 index.ts 里导入,而 index.ts 又导入 quick-order.module.ts 中的内容。QuickOrderM... 假设我们要为 Spartacus UI 开发一个新功能,首先,这个新功能,应该放到 feature library 文件夹里:这个新功能的入口,放置到 Feature Module 中。新功能通过 public_api.ts 将公有功能暴露给外部消费者。后者从 index.ts 里导入,而 index.ts 又导入 quick-order.module.ts 中的内容。QuickOrderM...
- Jerry 之前的文章SAP 产品 UI 里的容器组件的概念和开发概述介绍过,SAP Spartacus Angular Component,通过我们开发团队自定义的指令 cxComponentWrapper 进行渲染。在运行时,根据 Angular Component 的名称,即第90行 flexType 字段包含的 QuickOrderComponent,我们能够使用 Angular C... Jerry 之前的文章SAP 产品 UI 里的容器组件的概念和开发概述介绍过,SAP Spartacus Angular Component,通过我们开发团队自定义的指令 cxComponentWrapper 进行渲染。在运行时,根据 Angular Component 的名称,即第90行 flexType 字段包含的 QuickOrderComponent,我们能够使用 Angular C...
- 当 ng add 命令向项目中添加某个库时,就会运行原理图。ng generate 命令则会运行原理图,来创建应用、库和 Angular 代码块。一些术语: 规则在原理图 中,是指一个在文件树上运行的函数,用于以指定方式创建、删除或修改文件,并返回一个新的 Tree 对象。 文件树在 schematics 中,一个用 Tree 类表示的虚拟文件系统。 Schematic 规则以一个 tree... 当 ng add 命令向项目中添加某个库时,就会运行原理图。ng generate 命令则会运行原理图,来创建应用、库和 Angular 代码块。一些术语: 规则在原理图 中,是指一个在文件树上运行的函数,用于以指定方式创建、删除或修改文件,并返回一个新的 Tree 对象。 文件树在 schematics 中,一个用 Tree 类表示的虚拟文件系统。 Schematic 规则以一个 tree...
- Angular 最近推出了一项新功能,Tree Shakeable Providers。 Tree Shakeable Providers 是一种定义服务和其他东西的方式,以一种可以提高 Angular 应用程序性能的方式被 Angular 的依赖注入系统使用。首先,在我们深入挖掘之前,让我们先定义一下摇树。摇树是构建过程中的一个步骤,它从代码库中删除未使用的代码。删除未使用的代码可以被认为... Angular 最近推出了一项新功能,Tree Shakeable Providers。 Tree Shakeable Providers 是一种定义服务和其他东西的方式,以一种可以提高 Angular 应用程序性能的方式被 Angular 的依赖注入系统使用。首先,在我们深入挖掘之前,让我们先定义一下摇树。摇树是构建过程中的一个步骤,它从代码库中删除未使用的代码。删除未使用的代码可以被认为...
- 自从 Angular 库功能(从 Angular 7 开始)发布以来,现在开发 Angular 库比以往任何时候都容易。 Angular 库本身配备了一个名为 ng-packagr 的社区驱动包,它几乎是核心。 在本文中,我们将看看如何利用 ng-packagr 辅助入口点进一步拆分我们的 Angular 库! Why do we need secondary entry points?我们... 自从 Angular 库功能(从 Angular 7 开始)发布以来,现在开发 Angular 库比以往任何时候都容易。 Angular 库本身配备了一个名为 ng-packagr 的社区驱动包,它几乎是核心。 在本文中,我们将看看如何利用 ng-packagr 辅助入口点进一步拆分我们的 Angular 库! Why do we need secondary entry points?我们...
- 此功能是在 TUA Spartacus 库的 1.0 版中引入的。购物车在 TUA Spartacus 与核心 Commerce Spartacus 中的工作方式不同,需要支持产品供应以及复杂的定价结构,以支持多种类型的收费,包括一次性收费、经常性收费和基于使用的收费。 在各种费用中,对于购物车,客户需要了解结帐时的立即付款费用以及每月经常性费用承诺。什么是 TUA Spartacus?项目... 此功能是在 TUA Spartacus 库的 1.0 版中引入的。购物车在 TUA Spartacus 与核心 Commerce Spartacus 中的工作方式不同,需要支持产品供应以及复杂的定价结构,以支持多种类型的收费,包括一次性收费、经常性收费和基于使用的收费。 在各种费用中,对于购物车,客户需要了解结帐时的立即付款费用以及每月经常性费用承诺。什么是 TUA Spartacus?项目...
- 在计算机编程领域中,memoization 或 memoisation 是一种优化技术,主要用于通过存储昂贵的函数调用的结果并在再次出现相同的输入时返回缓存的结果来加速计算机程序。Memoization 也已用于其他上下文(以及速度增益以外的目的),例如在简单的相互递归下降解析中。尽管与缓存有关,但记忆化是指此优化的特定情况,将其与缓存或页面替换等缓存形式区分开来。在某些逻辑编程语言的上下文... 在计算机编程领域中,memoization 或 memoisation 是一种优化技术,主要用于通过存储昂贵的函数调用的结果并在再次出现相同的输入时返回缓存的结果来加速计算机程序。Memoization 也已用于其他上下文(以及速度增益以外的目的),例如在简单的相互递归下降解析中。尽管与缓存有关,但记忆化是指此优化的特定情况,将其与缓存或页面替换等缓存形式区分开来。在某些逻辑编程语言的上下文...
- 我们日常发现的一些最常用的 RxJs 操作符是 RxJs 高阶映射操作符:switchMap、mergeMap、concatMap 和exhaustMap。例如,我们程序中的大部分网络调用都将使用这些运算符之一完成,因此熟悉它们对于编写几乎所有反应式程序至关重要。知道在给定情况下使用哪个运算符(以及为什么)可能有点令人困惑,我们经常想知道这些运算符是如何真正工作的,以及为什么它们会这样命名。... 我们日常发现的一些最常用的 RxJs 操作符是 RxJs 高阶映射操作符:switchMap、mergeMap、concatMap 和exhaustMap。例如,我们程序中的大部分网络调用都将使用这些运算符之一完成,因此熟悉它们对于编写几乎所有反应式程序至关重要。知道在给定情况下使用哪个运算符(以及为什么)可能有点令人困惑,我们经常想知道这些运算符是如何真正工作的,以及为什么它们会这样命名。...
上滑加载中
推荐直播
-
GaussDB数据库介绍
2025/01/07 周二 16:00-18:00
Steven 华为云学堂技术讲师
本期直播将介绍GaussDB数据库的发展历程、优势、架构、关键特性和部署模式等,旨在帮助开发者了解GaussDB数据库,并通过手把手实验教大家如何在华为云部署GaussDB数据库和使用gsql连接GaussDB数据库。
去报名 -
DTT年度收官盛典:华为开发者空间大咖汇,共探云端开发创新
2025/01/08 周三 16:30-18:00
Yawei 华为云开发工具和效率首席专家 Edwin 华为开发者空间产品总监
数字化转型进程持续加速,驱动着技术革新发展,华为开发者空间如何巧妙整合鸿蒙、昇腾、鲲鹏等核心资源,打破平台间的壁垒,实现跨平台协同?在科技迅猛发展的今天,开发者们如何迅速把握机遇,实现高效、创新的技术突破?DTT 年度收官盛典,将与大家共同探索华为开发者空间的创新奥秘。
去报名
热门标签