AMD

AMD驱动报错amd software adrenalin edition requires a system reboot to begin怎么解决 AMD驱动报错amd software adrenalin edition requires a system reboot to begin怎么解决?卸载驱动然后重启~ 阅读详情

异步模块定义规范(AMD)制定了定义模块的规则,这样模块和模块的依赖可以被异步加载。这和浏览器的异步加载模块的环境刚好适应(浏览器同步加载模块会导致性能、可用性、调试和跨域访问等问题)。

此AMD与科技公司AMD 及其制造的AMD处理器无关。

API说明

define() 函数

本规范只定义了一个函数 “define”,它是全局变量。函数的描述为:

define(id?, dependencies?, factory);
id

名字
第一个参数,id,是个字符串。它指的是定义中模块的名字,这个参数是可选的。如果没有提供该参数,模块的名字应该默认为模块加载器请求的指定脚本的名字。如果提供了该参数,模块名必须是“顶级”的和绝对的(不允许相对名字)。

模块名的格式
模块名用来唯一标识定义中模块,它们同样在依赖数组中使用。AMD的模块名规范是CommonJS模块名规范的超集。引用如下:

  • 模块名是由一个或多个单词以正斜杠为分隔符拼接成的字符串
  • 单词须为驼峰形式,或者”.”,”..”
  • 模块名不允许文件扩展名的形式,如”.js”
  • 模块名可以为 “相对的” 或 “顶级的”。如果首字符为”.”或”..”则为”相对的”模块名
  • 顶级的模块名从根命名空间的概念模块解析
  • 相对的模块名从 “require” 书写和调用的模块解析

上文引用的CommonJS模块id属性常被用于JavaScript模块。

相对模块名解析示例:

  • 如果模块 “a/b/c” 请求 “../d”, 则解析为”a/d”
  • 如果模块 “a/b/c” 请求 “./e”, 则解析为”a/b/e”
  • 如果AMD的实现支持加载器插件(Loader-Plugins),则”!”符号用于分隔加载器插件模块名和插件资源名。由于插件资源名可以非常自由地命名,大多数字符都允许在插件资源名使用。
依赖dependencies

第二个参数,dependencies,是个定义中模块所依赖模块的数组。依赖模块必须根据模块的工厂方法优先级执行,并且执行的结果应该按照依赖数组中的位置顺序以参数的形式传入(定义中模块的)工厂方法中。
依赖的模块名如果是相对的,应该解析为相对定义中的模块。换句话来说,相对名解析为相对于模块的名字,并非相对于寻找该模块的名字的路径。
本规范定义了三种特殊的依赖关键字。如果”require“,”exports“, 或 “module“出现在依赖列表中,参数应该按照CommonJS模块规范自由变量去解析。
依赖参数是可选的,如果忽略此参数,它应该默认为[“require“, “exports“, “module“]。然而,如果工厂方法的形参个数小于3,加载器会选择以函数指定的参数个数调用工厂方法。

工厂方法factory

第三个参数,factory,为模块初始化要执行的函数或对象。如果为函数,它应该只被执行一次。如果是对象,此对象应该为模块的输出值。
如果工厂方法返回一个值(对象,函数,或任意强制类型转换为true的值),应该为设置为模块的输出值。

简单的 CommonJS 转换
如果依赖性参数被忽略,模块加载器可以选择扫描工厂方法中的require语句以获得依赖性(字面量形为require("module-id"))。第一个参数必须字面量为require从而使此机制正常工作。
在某些情况下,因为脚本大小的限制或函数不支持toString方法(OperaMobile是已知的不支持函数的toString方法),模块加载器可以选择扫描不扫描依赖性。
如果有依赖参数,模块加载器不应该在工厂方法中扫描依赖性。

define.amd 属性
为了清晰的标识全局函数(为浏览器加载script必须的)遵从AMD编程接口,任何全局函数应该有一个”amd“的属性,它的值为一个对象。这样可以防止与现有的定义了define函数但不遵从AMD编程接口的代码相冲突。
当前,define.amd对象的属性没有包含在本规范中。实现本规范的作者,可以用它通知超出本规范编程接口基本实现的额外能力。
define.amd的存在表明函数遵循本规范。如果有另外一个版本的编程接口,那么应该定义另外一个属性,如define.amd2,表明实现只遵循该版本的编程接口。

一个如何定义同一个环境中允许多次加载同一个版本的模块的实现:

define.amd={
  multiversion: true
}

最简短的定义:

define.amd = {};

一次输出多个模块
在一个脚本中可以使用多次define调用。这些define调用的顺序不应该是重要的。早一些的模块定义中所指定的依赖,可以在同一脚本中晚一些定义。模块加载器负责延迟加载未解决的依赖,直到全部脚本加载完毕,防止没必要的请求。

例子

使用 require 和 exports

require 是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口。
中间包括两个概念
1、相对标识 以 . 开头,只出现在模块环境中(define 的 factory 方法里面)。相对标识永远相对当前模块的 URI 来解析:
2、顶级标识 不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析:

创建一个名为”alpha”的模块,使用了require,exports,和名为”beta”的模块:

define("alpha", ["require", "exports", "beta"], function (require, exports, beta) {
   exports.verb = function() {
       return beta.verb();
       //Or:
       return require("beta").verb();
   }
});

一个返回对象的匿名模块:

 define(["alpha"], function (alpha) {
     return {
       verb: function(){
         return alpha.verb() + 2;
       }
     };
 });

一个没有依赖性的模块可以直接定义对象:

 define({
   add: function(x, y){
     return x + y;
   }
 });

一个使用了简单CommonJS转换的模块定义:

 define(function (require, exports, module) {
   var a = require('a'),
       b = require('b');

   exports.action = function () {};
 });

全局变量

本规范保留全局变量define以用来实现本规范。包额外信息异步定义编程接口是为将来的CommonJSAPI保留的。模块加载器不应在此函数添加额外的方法或属性。
本规范保留全局变量require被模块加载器使用。模块加载器可以在合适的情况下自由地使用该全局变量。它可以使用这个变量或添加任何属性以完成模块加载器的特定功能。它同样也可以选择完全不使用require。

使用注意

为了使静态分析工具(如build工具)可以正常工作,推荐使用字面上形如的define(...)。

与CommonJS的关系

一个关于本API的wiki开始在CommonJS wiki中创建了,作为中转的格式,模块中转。但是为了包含模块定义接口,随着时间而不断改变。在CommonJS列表中关于推荐本API作为模块定义API尚未达成一致。本API被转移到它自己的wiki和讨论组中。
AMD可以作为CommonJS模块一个中转的版本只要CommonJS没有被用来同步的require调用。使用同步require调用的CommonJS代码可以被转换为使用回调风格的AMD模块加载器。

文章参考
参考一
参考二
参考三
参考四

AMD驱动报错The version of AMD Software that you have...怎么解决 一句话:按照提示来——网址放在这里了,直接进去就行。然后,我们来到了我们熟悉的领域——没错,bug报错。用我们的优快云搜索一下,竟然就是我自己的文章。 阅读详情

相关推荐

define:最小的AMD JavaScript模块加载器!

定义 最小的AMD JavaScript模块加载器! 缩小了仅1kB! 这是作为复制粘贴解决方案,因此我不会发布到npm。 我喜欢AMD,因为它允许无需任何处理的快速原型制作,这与CommonJS不同,在CommonJS中,您需要使用webpack或browserify之类的工具进行处理。 阅读有关AMD模块加载器的更多信息。 注意事项 它不支持: 循环引用(除非您管理它们) 通过文件引用的匿名模块 通过解析函数中的require(...)调用来隐式依赖 配置或插件 如果需要,您可以考虑使用其他诸如requirejs(最小化15kB)之类的东西。 缩小define.js $ npm install $ npm run build 输出将是define.min.js 运行测试 我实现了一些,并使用以下命令运行它们: $ npm install $ npm run test

javaScript 的AMD及define模块定义

js AMD

一只不知疲倦的学习猿 708

链家二手房信息爬取(内附完整代码)

链家二手房信息爬取1.简介2. 爬虫思路2.1 网页分析2.2 详情页分析2.3 不同页码的爬取2.4 解决链家只显示100页数据2.5 简单的反爬与进度条显示3. 总结 1.简介   最近帮同学爬取了链家在售二手房的信息,这是本人学习爬虫以来爬取数据最多的一次,就想着写个博客记录一下。   本次爬虫是利用python+jupyter notebook实现的,用到的第三方库如下: import pandas as pd # 数据存储 import requests # 网页内容获取 import re #

qq_46256922的博客 3万+

AMD模块定义规范

AMD 模块定义规范 异步模块定义(AMD)的编程接口提供了定义模块,及异步加载该模块的依赖的机制。 它非常适合于使用于浏览器环境,浏览器的同步加载模块机制会带来性能,可用性,调试和跨域访问的问题。 API 说明 define() 函数 本规范只定义了一个函数 "define",它是全局变量。函数的描述为: define(id?, dependencies?, factory);

gnsydss的专栏 1348

实战指南:R语言多组倾向评分逆概率加权(IPTW)建模与结果解读

本文详细介绍了如何使用R语言实现多组倾向评分逆概率加权(IPTW)建模,包括数据预处理、倾向评分估计、权重计算及结果解读。通过实战案例演示,帮助研究者掌握这一统计方法,有效平衡多组混杂因素,模拟随机对照试验效果,适用于医学、社会科学等领域的数据分析。

weixin_42528534的博客 395

三极管NPN与PNP的工作原理及快速识别技巧

本文深入浅出地解析了三极管NPN与PNP的核心工作原理。通过“水龙头”比喻,阐明其以小电流控制大电流的放大与开关本质。文章重点对比了NPN与PNP在电流方向、电位关系和控制逻辑上的根本区别,并提供了快速识别技巧与实用的选型、应用指南,帮助电子爱好者与工程师快速掌握这两种基础元件的关键知识。

neovim7hacker的博客 453

前端模块化

如果需要用到外界的全局变量,可以通过参数传入,如图中的this,这个this实际上是Window对象,通过传入this,使得Window由全局变量变为局部变量,当在后面那个代码块中访问this时,不需要将作用域链回退到顶层作用域,这样可以更快的访问Window对象;模块化是一种自顶向下的过程,通过把一个大的系统,逐步划分为一个个小的模块,这些模块内部封装了一些特定的功能,通过约定的接口对外暴露。factory是模块初始化要执行的函数或对象,如果是函数,只执行一次,如果是对象,即为模块输出值。...

waidyj的专栏 1248

AIGC游戏测试自动化:AI如何提升游戏QA效率

随着游戏产业的蓬勃发展,游戏的复杂度和规模不断增加,传统的游戏测试方式面临着巨大的挑战。本文章的目的在于深入探讨AIGC技术在游戏测试自动化中的应用,分析AI如何提升游戏QA的效率。范围涵盖了从核心概念到实际应用的各个方面,包括算法原理、数学模型、项目实战案例以及未来发展趋势等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确AIGC和游戏测试自动化的相关概念和关系;接着讲解核心算法原理和具体操作步骤,通过Python代码进行详细说明;然后介绍数学模型和公式,并举例说明;

AI 原生应用开发的博客 1353

AMD 规范

异步模块定义规范(AMD)制定了定义模块的规则,这样模块和模块的依赖可以被异步加载。这和浏览器的异步加载模块的环境刚好适应(浏览器同步加载模块会导致性能、可用性、调试和跨域访问等问题)。 此AMD与科技公司AMD 及其制造的AMD处理器无关。 测试讨论 API说明 define() 函数 本规范只定义了一个函数 "define",它是全局变量。函数的描述为:

hheuii的博客 1107

大模型微调部署实战及类GPT工具的高效使用

本文主要介绍了专栏《大模型微调部署实战及类GPT工具的高效使用》的核心内容,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 专栏亮点 3. 你的收获 4. 详细目录

herosunly的博客 22万+

华为流程L1-L6业务流程深度细化到可执行【附全文阅读】

该文档主要介绍了华为业务流程的深度细化及相关内容,包括流程框架、建模方法、流程模块描述、流程图建模等,旨在帮助企业构建有效的流程体系,实现战略目标。

cdfunlove的博客 4003

js中封装方法库关于适配amd和cmd的头部写法

项目中用到了一些js库,发现他们的头部都适配了amd和cmd模块化开发,现如下列表: /*loadingmodal.js*/ !function(t, i) { "function" == typeof define && define.amd ? define(["jquery"], i) : "object" == typeof exports ? mod...

mm_hello11的博客 1707

【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?

作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1143

此主机支持 AMD-V,但 AMD-V 处于禁用状态

此主机支持 AMD-V,但 AMD-V 处于禁用状态

weixin_53944340的博客 2万+

【OpenClaw】Edict 三省六部制部署与启动

文章摘要 本文聚焦Edict系统的本地部署与启动,提供三种安装方式:Docker快速体验、macOS/Linux原生安装和Windows生产仿真。核心目标是让用户能够独立完成系统启动和基础问题排查,确保看板、后端服务、同步脚本和网关正常运行。文章强调环境检查的重要性,并给出具体验收标准:浏览器能访问看板页面(http://127.0.0.1:7891)和接口返回JSON数据。同时提供一键启动/停止脚本和常见问题处理建议,帮助用户快速验证部署结果。配套系列教程涵盖部署启动、使用实战、二次开发和封装版本使用等内

Mr数据杨 2901

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ARM和AMD区别

CPU 与 GPU

weixin_42615026的博客 6万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

amd显卡怎么超频?amd显卡轻松超频

AMD显卡是一款高性能的图形处理器品牌,可以实现高清、流畅、快速的游戏和视频体验。但是,有些游戏玩家可能想要进一步提升AMD显卡的性能,让它发挥更大的潜力。这就需要用到超频的技术。那么amd显卡怎么超频呢,下面编者便为大家介绍一下amd显卡超频教程。

weixin_56386428的博客 2698

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

AMD CPU + AMD GPU用户的漫漫修炼之路

摘要:作者分享全AMD组装PC的优化经验。初期使用中出现黑屏、花屏等问题,经一年排查发现三大关键因素:1)内存频率需保持自动设置以达最佳"甜点频率";2)禁用Windows的MPO技术可解决浏览器黑屏和闪烁问题;3)关闭AMD的SAM技术能改善游戏稳定性。通过调整这三项设置,电脑已长期稳定运行,验证了AMD产品的高性价比特性。文章详细提供了各项问题的具体解决方案,包括注册表修改和BIOS设置方法。

xiongwm的专栏 3456

matlab amd负优化,AMD 篇三:AMD真的翻身了?—— AMD&INTEL CPU 计算性能测试

AMD 篇三:AMD真的翻身了?—— AMD&INTEL CPU 计算性能测试2020-02-25 15:13:0512点赞18收藏14评论前言这次主要讲一下AMD和INTEL CPU的mkl库测试,以及10980XE不降价原因的猜测。2019年,AMD发布ZEN2以后,很多人 大呼AMD翻身了!!!每款CPU发布时,都会有专业的媒体进行测评,测评的方面无非是常见的几种:游戏帧数、Cine...

weixin_31174767的博客 3745

AMD规范

在读某第三方的源代码时,发现一个define()方法,随即开始了AMD语法的学习,随将学习成果分享如下: 一,ADM规范背景调查 前端技术在不断的发展之中,很多公司会开发自己的框架来用。开发一个自己会用的框架并不难,但开发一个大家都喜欢的框架却很难。从一个框架迁移到一个新的框架,开发者很有可能还会按照原有框架的思维去思考和解决问题。这其中的一个重要原因就是JavaScript本身的灵活性:框架...

Leo_DLi的博客 1266

Ubuntu 安装 AMD GPU 驱动

Ubuntu 安装 AMD GPU 驱动 环境申明 Ubuntu18.04 AMD-RX580 显卡 AMD 官网下载驱动 https://www.amd.com/en/support 将驱动上传到 Ubuntu 系统并解压 $ cd ~/Downloads $ tar -Jxvf amdgpu-pro-YY.XX-NNNNNN.tar.xz $ cd ~/Download...

qq_42920045的博客 2万+

AMD终极揭秘

原文: http://www.sitepen.com/blog/2012/06/25/amd-the-definitive-source/作者:Kris Zyp译者:Elaine Liu究竟什么是AMD?随着web应用不断发展和对JavaScript依赖的进一步加深,出现了使用模块(Modules)来组织代码和依赖性。模块使得我们创建明确清晰的组件和接口,这些组件和接口能够很容易的加载并连接到其依

Dojo中文博客 2万+

什么是AMD;什么是CMD

AMD 异步模块定义(AMD)API指定了一种定义模块的机制,以便可以异步加载模块及其依赖项。这特别适用于浏览器环境,其中模块的同步加载会导致性能,可用性,调试和跨域访问问题。 id 名字 第一个参数,id,是个字符串。它指的是定义中模块的名字,这个参数是可选的。如果没有提供该参数,模块的名字应该默认为模块加载器请求的指定脚本的名字。如果提供了该参数,模块名必须是“顶级”的和绝对的(不允许相对...

Wmt3344的博客 1378

AMD规范知识点总结

AMD规范的总结整理 学习参考网址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 1、什么是AMD AMD规范全称是Asynchronous Module Definition,即异步模块加载机制。它完整描述了模块的定义,依赖关系,引用关系以及加载机制。 AMD对应的就是很有名的RequireJS 2、require.js的使用 a、...

熬夜不秃头的博客 3002

模块化:AMD规范

AMD(Asynchronous Module Definition)-异步模块定义的规范——简称AMD规范,则采用异步方式加载模块,不会阻塞浏览器展示页面时,dom构建、css渲染等其它任务,模块内部的内容则采用同步加载方式,加载完成之后会立即执行主模块中定义的回调函数,真正启动web应用程序。

席木木的博客 1846

AMD模块写法

AMD模块的写法 require.js加载的模块,采用AMD规范。也就是说,模块必须按照AMD的规定来写。 具体来说,就是模块必须采用特定的define()函数来定义。如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中。 假定现在有一个math.js文件,它定义了一个math模块。那么,math.js就要这样写:   // math.js   defi

LONGSHAN123456789的博客 2096
上一篇: 面向对象与原型原稿
下一篇: Console
chentian888
博客等级 码龄11年 16粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值