关于requirejs:AMD规范之requirejs

写在后面AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。目前,次要有两个Javascript库实现了AMD标准:require.js 和 curl.js。这里介绍 require.js。既然是模块,就波及到两个通用的问题:1. 模块如何定义。2. 模块如何加载。 定义模块在 require.js 中,定义一个模块的形式为: define(callback)// ordefine([...modules], callback)能够看出,在引入了 require.js 之后,全局提供了一个 define 函数,用于模块的定义。当 define 函数只接管到一个参数时,该参数为该模块的回调函数,在模块被加载时调用,函数的返回值即作为该模块的导出值。当 define 函数接管到两个参数时,第一个参数为该模块的依赖数组,第二个函数为该模块的回调函数,函数的参数顺次为依赖数组的每一项。函数的返回值为该模块的导出值。 由模块定义的形式能够看出,define 函数并未提供定义模块名字的地位,那怎么惟一定义这个模块的名字呢?援用这个模块时的名字是什么呢?答案是文件名。 require.js要求,每个模块是一个独自的js文件。 加载模块在 require.js 中,加载一个模块的形式为: require([...modules], callback)require 函数的第一个参数为要加载的模块,第二个函数为回调函数,在后面的模块加载实现后会调用回调函数,并将加载的模块的返回值顺次传递给回调函数。 示例上面以在浏览器我的项目中援用 require.js 为例展现其用法。我的项目构造如下: 1️ 浏览器中引入 require.js 须要用 data-main 属性指明 require.js 的入文件,即主程序。 // index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Amd test</title></head><body> <script data-main="js/main.js" src="https://cdn.bootcdn.net/ajax/libs/require.js/2.3.6/require.min.js"></script></body></html>2️ 定义 a 模块和 b 模块 // a.jsdefine(function() { return { sayHi: function() { console.log('我是 A 模块!'); } }})// b.jsdefine(['a'], function(a) { return { sayHi: function() { console.log('我是 B 模块!'); a.sayHi() } }})3️ 定义主模块,main.js ...

February 1, 2022 · 1 min · jiezi

关于requirejs:附1require加载资源的方式或者类型

require反对的加载资源模式是.js/.json/.node 1 .js文件要求导出个module.exports/exports 2. .json格局会首先通过JSON.parse解析出一个对象 3. .node格局C++插件 Addons process.dlopen关上 咱们前端工作人员不操心那个状况了 4. 所有的其余文件 都会应用js引擎进行解析,所以文件格式后缀不重要,重要的是外面写的代码是否是js代码那么目录中有file.txt 是否能用require('./file.txt') # file.txtexport.default = {}那么如果是README.md中如果写js代码呢 大家能够试试

April 21, 2021 · 1 min · jiezi

前端面试每日-31-第183天

今天的知识点 (2019.10.16) —— 第183天[html] HTML5的output是非常棒的一个标签,你对它有了解吗?[css] 怎样去除图片自带的边距?[js] 在js中函数返回多个值有哪些方法?[软技能] 说说你对AMD、CMD和CommonJS的理解《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受!相信 坚持 的力量!!!欢迎在 Issues 和朋友们一同讨论学习! 项目地址:前端面试每日3+1 【推荐】欢迎跟 jsliang 一起折腾前端,系统整理前端知识,目前正在折腾 LeetCode,打算打通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个Star, 同时欢迎微信扫码关注 前端剑解 公众号,并加入 “前端学习每日3+1” 微信群相互交流(点击公众号的菜单:进群交流)。 学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢迎大家到Issues交流,鼓励PR,感谢Star,大家有啥好的建议可以加我微信一起交流讨论!希望大家每日去学习与思考,这才达到来这里的目的!!!(不要为了谁而来,要为自己而来!)交流讨论欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个[Star] https://github.com/haizlin/fe...

October 16, 2019 · 1 min · jiezi

前端模块化的前世

随着前端项目的越来越庞大,组件化的前端框架,前端路由等技术的发展,模块化已经成为现代前端工程师的一项必备技能。无论是什么语言一旦发展到一定地步,其工程化能力和可维护性势必得到相应的发展。 模块化这件事,无论在哪个编程领域都是相当常见的事情,模块化存在的意义就是为了增加可复用性,以尽可能少的代码是实现个性化的需求。同为前端三剑客之一的 CSS 早在 2.1 的版本就提出了 @import 来实现模块化,但是 JavaScript 直到 ES6 才出现官方的模块化方案: ES Module (import、export)。尽管早期 JavaScript 语言规范上不支持模块化,但这并没有阻止 JavaScript 的发展,官方没有模块化标准开发者们就开始自己创建规范,自己实现规范。 CommonJS 的出现十年前的前端没有像现在这么火热,模块化也只是使用闭包简单的实现一个命名空间。2009 年对 JavaScript 无疑是重要的一年,新的 JavaScript 引擎 (v8) ,并且有成熟的库 (jQuery、YUI、Dojo),ES5 也在提案中,然而 JavaScript 依然只能出现在浏览器当中。早在2007年,AppJet 就提供了一项服务,创建和托管服务端的 JavaScript 应用。后来 Aptana 也提供了一个能够在服务端运行 Javascript 的环境,叫做 Jaxer。网上还能搜到关于 AppJet、Jaxer 的博客,甚至 Jaxer 项目还在github上。 但是这些东西都没有发展起来,Javascript 并不能替代传统的服务端脚本语言 (PHP、Python、Ruby) 。尽管它有很多的缺点,但是不妨碍有很多人使用它。后来就有人开始思考 JavaScript 要在服务端运行还需要些什么?于是在 2009 年 1 月,Mozilla 的工程师 Kevin Dangoor 发起了 CommonJS 的提案,呼吁 JavaScript 爱好者联合起来,编写 JavaScript 运行在服务端的相关规范,一周之后,就有了 224 个参与者。 ...

October 9, 2019 · 5 min · jiezi

xpath匹配一个标签下所有内容

from lxml import etreeimport requestsurl = ‘http://www.shihuo.cn/youhui/474770.html#qk=youhui_list'response = requests.get(url)text = etree.HTML(response.text)tt = text.xpath("//div[@class=‘article’]")info = tt[0].xpath(“string(.)”)

March 25, 2019 · 1 min · jiezi