当前位置: 首页 > news >正文

工具链和其他-异步模块加载

目录

CMD/AMD

Asynchronous Module Definition(AMD异步模块定义,语法风格)

Common Module Definition

ES6/CommonJS

CommonJS

ES6 Module

加载器示例

总结


cmd和amd的区别

现在有哪些异步加载方式

整体结构

编程:commonjs es6 module (有可能解析不了,需要传输层)

传输:cmd/amd(早期是异步加载模块用的,不是一个中间层;现在是一个加载模块,不把程序写在里面)

执行:require.js webpack模块加载器......(异步加载器)

CMD/AMD

Asynchronous Module Definition(AMD异步模块定义,语法风格)

amd不是一个很好的设计

// 模块创建
// a.js
define(['functions/foo'], (foo) => { // 数组:依赖foo——文件在functions/fooconsole.log(foo())
})
// 模块使用
// a.js
//         数组代表所有依赖                函数接收所有依赖
require(['jquery', 'a.js'], ($, printFoo) => {$("#foo").click(()=> {printFoo()    })
})

Common Module Definition

// 模块使用
// a.js
define((require, exports) => {function printFoo() {const foo = require('./foo') // 声明后置console.log(foo())    }exports = printFoo // 声明后置 用到在声明
})
// 模块使用
// a.js
use((require) => {const $ = require('jquery') // 同步模型,异步的话可以用asyns await,promiseconst printFoo = require('./a.js')$("#foo").click(() => {printFoo()    })
})

ES6/CommonJS

CommonJS

node支持

浏览器访问转义为浏览器可解读的cmd

// 模块使用
// a.js
function A(){...}
module.exports = A
// 模块引用
const A = require("./a.js")
A()

ES6 Module

// 模块使用
// a.js
function A(){...}
export default A
// 模块引用
import A from './a.js'
A()

加载器示例

const express = require('express')
const app = express() 
const path = require('path')
app.use(express.static(path.resolve(__dirname, 'lib')))
app.get('/', (req, res) => {res.send(`<html><body><script src='/require.js' ></script><script>require.path = '/'require(['add', 'mult'], (add, mult) => {console.log(add(3, 5))console.log(mult(3, 5))})</script></body></html>`)
})
app.listen(3000)
// add.js
define('add', (a, b) => {return a + b
})
// mult.js
define('mult', (a, b) => {return a * b
})

总结

  • CMD/AMD:底层建设 (浏览器用的)
  • CommonJS/ES6 Module: 书写规范

相关文章:

工具链和其他-异步模块加载

目录 CMD/AMD Asynchronous Module Definition(AMD异步模块定义&#xff0c;语法风格) Common Module Definition ES6/CommonJS CommonJS ES6 Module 加载器示例 总结 cmd和amd的区别 现在有哪些异步加载方式 整体结构 编程&#xff1a;commonjs es6 module (有可能解…...

第一次使用R语言

在R语言中&#xff0c;“<-”符号与“”意义一样。另一种奇怪的R语言的等号表示方法&#xff0c;是以“->”表示&#xff0c;但是用得少。 有些计算机语言&#xff0c;变量在使用前要先定义&#xff0c;R语言则不需先定义&#xff0c;可在程序中直接设定使用。 若在Con…...

《语文教学通讯》栏目 收稿范围

《语文教学通讯》创刊于1978年&#xff0c;是由山西师范大学主管&#xff0c;山西师大教育科技传媒集团主办的期刊。历年被人民大学书报资料中心转载、复印的篇幅数量均居同类报刊之首。国内刊号&#xff1a;CN 14-1017/G4&#xff0c;国际刊号&#xff1a;ISSN 1004-6097&…...

Towards Principled Disentanglement for Domain Generalization

本文用大量的理论论述了基于解纠缠约束优化的域泛化问题。 这篇文章认为以往的文章在解决域泛化问题时所用的方法都是non-trivial的&#xff0c;也就是说没有作严格的证明&#xff0c;是不可解释的&#xff0c;而本文用到大量的定理和推论证明了方法的有效性。 动机 因为域泛…...

计算机网络学习02

1、TCP 与 UDP 的区别&#xff1f; 是否面向连接 &#xff1a; UDP 在传送数据之前不需要先建立连接。而 TCP 提供面向连接的服务&#xff0c;在传送数据之前必须先建立连接&#xff0c;数据传送结束后要释放连接。是否是可靠传输&#xff1a; 远地主机在收到 UDP 报文后&…...

网络交换机端口管理工具

如今&#xff0c;企业或组织级网络使用数百个交换机端口作为其 IT 基础架构的一部分来实现网络连接。这使得交换机端口管理成为日常网络管理任务的一部分。传统上&#xff0c;网络管理员必须依靠手动网络交换机端口管理技术来跟踪交换机及其端口连接状态。这种手动任务弊大于利…...

redis五大命令kv设计建议内存淘汰

什么是redis&#xff1f;主要作用&#xff1f; redis(remote dictionary server)远程字典服务&#xff1a;是一个开源的使用ANSI C语言编写&#xff0c;支持网络、可基于内存可持久化的日志型、key-value数据库&#xff0c;并提供多种语言的api redis的数据存在内存中&#xff…...

如何真正认识 Linux 系统结构?这篇文章告诉你

Linux 系统一般有 4 个主要部分&#xff1a;内核、shell、文件系统和应用程序。内核、shell 和文件系统一起形成了基本的操作系统结构&#xff0c;它们使得用户可以运行程序、管理文件并使用系统。 Linux内核 内核是操作系统的核心&#xff0c;具有很多最基本功能&#xff0c;…...

【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )

文章目录 一、视口标签设置二、CSS 样式文件设置三、布局宽度设置1、设置布局宽度2、设置布局最大宽度3、设置布局最小宽度4、查看网页最大最小宽度5、布局宽度设置 四、代码示例1、主界面标签2、CSS 布局设置 一、视口标签设置 参考 【移动端网页布局】移动端网页布局基础概念…...

力扣---LeetCode88. 合并两个有序数组

文章目录 前言88. 合并两个有序数组链接&#xff1a;方法一&#xff1a;三指针(后插)1.2 代码&#xff1a;1.2 流程图&#xff1a;方法二&#xff1a;开辟新空间2.1 代码&#xff1a;2.2 流程图&#xff1a;2.3 注意&#xff1a; 总结 前言 “或许你并不熠熠生辉甚至有点木讷但…...

H7-TOOL的CANFD Trace全解析功能制作完成,历时一个月(2023-04-28)

为了完成这个功能&#xff0c;差不多耗费了一个月时间&#xff0c;精神状态基本已经被磨平了。 当前已经支持&#xff1a; 1、LUA小程序控制&#xff0c;使用灵活。 2、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现&#xff0c;支持USB&#xff0c;以太网…...

探析Android中的四类性能优化

作者&#xff1a;Yj家的孺子牛 流畅性优化 主线程模型 了解 Android 的流畅性优化之前&#xff0c;我们需要先了解Android的线程结构。在 Android 中&#xff0c;有一个主线程模型&#xff0c;其中所有的绘制以及交互都是在主线程中进行的&#xff0c;所以&#xff0c;当我们…...

ubuntu18.04 安装编译zlmediakit

参考http://www.cherrylord.cn/archives/zlmediakit 1、获取代码 #国内用户推荐从同步镜像网站gitee下载 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit #千万不要忘记执行这句命令 git submodule update --init#国内用户推荐…...

C++ -5- 内存管理

文章目录 C语言和C内存管理的区别示例1. C/C 中程序内存区域划分2. C中动态内存管理3.operator new 与 operator delete 函数4.new 和 delete 的实现原理5.定位new表达式 C语言和C内存管理的区别示例 //C语言&#xff1a; struct SListNode {int data;struct SListNode* next; …...

(Linux)在Ubuntu系统中添加新用户并授予root权限

向Ubuntu系统中添加新用户并为其授予root权限的步骤如下: 打开终端Terminal 输入命令: sudo su - 以 root 身份登录. 注: sudo su : 切换root身份, 不携带当前用户环境变量 sudo su - : 切换root身份, 携带当前用户环境变量 输入命令: adduser username 向Ubuntu系统中添…...

AttributeError: ‘ChatGLMModel‘ object has no attribute ‘prefix_encoder‘

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

Huggingface的GenerationConfig 中的top_k与top_p详细解读

Huggingface的GenerationConfig 中的top_k与top_p详细解读 Top_kTop_p联合共用 Top_k top-k是指只保留概率最高的前k个单词&#xff0c;然后基于剩余单词的概率进行归一化&#xff0c;从中随机抽取一个单词作为最终输出。这种方法可以限制输出序列的长度&#xff0c;并仍然保持…...

学生信息管理系统简易版(文件读写操作)

功能模块 具体功能如下&#xff1a; 添加学生信息修改学生信息&#xff08;按学号&#xff09;排序&#xff08;分别按总分升序、降序、以及按姓名升序&#xff09;查找学生&#xff08;按学号&#xff09;删除学生查看所有学生信息 数据结构体设计 本表设计一个学生信息的结…...

C/C++每日一练(20230426)

目录 1. 不喜欢带钱的小C &#x1f31f;&#x1f31f; 2. 数组排序 ※ 3. 超级素数 ※ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 不喜欢带钱的小C 小C不喜欢带钱&#xff0c…...

halcon灰度积分投影/垂直积分投影

简介:关于灰度投影积分可以用到的场合很多,例如分割字符,分割尺子上的刻度等,适用于有规律的变化这些内容的检测。本文复现了论文《基于深度学习和灰度纹理特征的铁路接触网绝缘子状态检测》中灰度积分投影实现了对绝缘子缺陷位置的检测。见(图1)灰度积分垂直方向投影获得…...

甲级钢制隔热平开防火窗:技术参数、结构工艺与工程应用解析

一、产品概述甲级钢制隔热平开防火窗严格依照国家消防标准制造&#xff0c;采用加厚冷轧镀锌钢板打造框架&#xff0c;搭配防火填充材料、隔热防火玻璃与专用密封配件&#xff0c;防火隔热、密闭性强&#xff0c;耐用抗腐蚀。相较于低等级防火窗&#xff0c;本品耐火隔热性能更…...

免费本地语音识别的终极解决方案:3步实现完全离线实时语音转文字

免费本地语音识别的终极解决方案&#xff1a;3步实现完全离线实时语音转文字 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公和在线学习日益普及的今天&#xff0c;你是否还在为云端语音识别服务的隐私…...

YOLOv11厨房食材目标检测数据集-2499张-Meat-1_5

YOLOv11厨房食材目标检测数据集 &#x1f4ca; 数据集基本信息 目标类别&#xff1a; [‘ayam’, ‘beef’, ‘pork’]中文类别&#xff1a;[‘鸡肉’, ‘牛肉’, ‘猪肉’]训练集&#xff1a;2256 张验证集&#xff1a;164 张测试集&#xff1a;79 张总计&#xff1a;2499 张 …...

从VOC到YOLO:用Labelimg标注后,一键转换数据格式的完整避坑指南

从VOC到YOLO&#xff1a;数据格式转换的工程化实践与避坑指南 当你用Labelimg完成目标检测任务的标注工作&#xff0c;看着满屏的XML文件&#xff0c;是否觉得离模型训练还差"最后一公里"&#xff1f;这恰恰是许多初学者从标注到训练的关键断裂点。本文将带你深入VOC…...

载肌红蛋白的钆纳米Texaphyrin用于氧协同和成像引导的放射增敏治疗

北京大学王凡教授、中国科学院生物物理研究所史继云研究员和多伦多大学郑钢教授团队在《Nature Communications》&#xff08;IF16.6&#xff09;上发表题为“Myoglobin-loaded gadolinium nanotexaphyrins for oxygen synergy and imaging-guided radiosensitization therapy”…...

CST仿真效率翻倍:手把手教你设置激励与优化器,搞定天线阵列参数优化

CST仿真效率翻倍&#xff1a;手把手教你设置激励与优化器&#xff0c;搞定天线阵列参数优化 天线阵列设计是射频工程师的日常挑战之一。当你在CST中完成基础建模后&#xff0c;真正的考验才刚刚开始——如何高效配置激励、选择合适的优化器&#xff0c;并快速获得准确的仿真结果…...

用NE555和LM324做个红外倒车雷达:从仿真到焊接,一个模电新手的踩坑实录

从零打造红外倒车雷达&#xff1a;NE555与LM324实战手记 第一次拿起电烙铁时&#xff0c;我的手抖得像风中的芦苇。作为电子工程专业的大二学生&#xff0c;模电课的理论公式在面包板上变成了一团乱麻。直到导师建议我尝试做个红外倒车雷达——这个结合了振荡电路、信号放大和电…...

DeepSeek推理服务崩溃频发?3类隐蔽内存泄漏Bug的精准捕获与48小时修复方案

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek推理服务崩溃频发&#xff1f;3类隐蔽内存泄漏Bug的精准捕获与48小时修复方案 典型泄漏模式识别 DeepSeek-R1/V2推理服务在高并发长周期运行中频繁OOM&#xff0c;经pprof火焰图与heap profile交叉分…...

以太网口模块PCB设计全解析:从信号完整性到EMC的实战指南

1. 项目概述&#xff1a;为什么以太网口模块的PCB设计值得深究&#xff1f;干了这么多年硬件设计&#xff0c;画过的板子不计其数&#xff0c;但每次遇到带以太网口的项目&#xff0c;心里还是会多一份谨慎。这玩意儿看着简单&#xff0c;RJ45插座加个变压器&#xff0c;再连到…...

【广东工业大学主办,阿布扎比大学支持举办 | JPCS 出版|EI,Scopus稳定双检索 | 连续多年EI稳定见刊检索】 第十届能源、环境与材料科学国际学术会议(EEMS 2026)

第十届能源、环境与材料科学国际学术会议(EEMS 2026&#xff09; 2026 10th International Conference on Energy, Environment and Materials Science 大会时间&#xff1a;2026年7月10-12日 大会地点&#xff1a;广东广州 会议官网&#xff1a;​​​​​​www.ic-eems…...