FED
技术栈
专辑
文章
讨论
公告
开发者
©FrontEndDev.org
2015 - 2024
web@2.23.0 api@2.21.1
首页
/
JavaScript
/
基础概念
/
相关文章
/
第 7 页
共计 303 篇
阮一峰:浏览器加载 CommonJS 模块的原理与实现
月纷悦
7/4/2015, 12:05:34 AM
访问
1489
·
评论
0
就在这个周末,npm超过了cpan,成为地球上最大的软件模块仓库。npm的模块都是JavaScript语言写的,但浏览器用不了,因为不支持CommonJS格式。要想让浏览器用上这些模块,必须转换格式。...
JavaScript
基础概念
阮一峰老师对 nodejs require 的源码解读
月纷悦
7/3/2015, 11:56:07 PM
访问
4115
·
评论
0
2009年,Node.js项目诞生,所有模块一律为CommonJS格式。时至今日,Node.js的模块仓库npmjs.com,已经存放了15万个模块,其中绝大部分都是CommonJS格式。这种格式的核心就是require语句,模块通过它加载。学习Node.js,必学如何使用require语句。本文通过源码分析,详细介绍require语句的内部运行机制,帮你理解Node.js的模块机制。...
JavaScript
基础概念
前端模块化开发方案小对比
月纷悦
7/3/2015, 11:52:10 PM
访问
1058
·
评论
0
前端采用模块化开发,使得开发体验大大增强,摆脱了很多需要人力去做且容易出错的点,使得代码管理更加清晰、规范。主要表现为以下几点:其中文件按需加载,依赖自动管理,使得更多精力去关注模块代码本身,开发时不需要在页面上写一大堆script引用,一个require初始化模块就搞定。不需要每增加一个文件,还要到HTML或者其他地方添加一个script标签或文件声明。...
JavaScript
基础概念
前端路上的旅行
月纷悦
7/3/2015, 11:12:57 PM
访问
1151
·
评论
0
从步入社会算起到今天,风风雨雨走过了15个年头,望着天空,掐指一算,从事前端已近五个年头。也算三分之一的时间在做前端,也是从事过时间最久的一份工作。问我为什么能做这么久?其实我也时常问自己,怎么就进前端这个行当,怎么就整了五年。正如网上所言,一入前端深似海。玩了五年,或许后面还会有一个五年,两个五年,或许......未来的路,谁与说不清楚,我只想每天走好自己想走的路。...
JavaScript
基础概念
Vuejs核心代码解析之编译阶段2(三)
Jonny Yao
6/28/2015, 1:19:59 PM
Vuejs 核心代码解析
访问
4201
·
评论
2
最近比较懒,工作也比较忙。这节拖后较久。声明本人非大大,有错误请指出。这节说下只处理文本节点的情况。例子:html:js:...
JavaScript
基础概念
跟我学 coolie 之 5 模块分块构建
云淡然
6/26/2015, 7:43:29 PM
跟我学 coolie
访问
1956
·
评论
10
接前文《coolie入门6-coolie实例演示》这是项目的目录结构。utils.js已经被length.js和area.js两个入口模块同时使用了,却分别打包在两个入口模块里:length.cac2241d618488f567abef6c7c99dd0d.js,length入口模块:...
JavaScript
基础概念
coolie PK webpack 之三:模块构建
云淡然
6/24/2015, 11:38:03 PM
coolie介绍
访问
7498
·
评论
8
终于到了重头戏啦?本文主要说明的是这两款构建工具(coolie和webpack),是分别如何完成模块化构建的,以及它们之间的优缺点。首先准备以下文件和目录,基本是承接上文的。entry1.js的内容为:...
JavaScript
基础概念
css文件和js文件后面带一个问号
Hatch
6/24/2015, 11:02:57 AM
访问
962
·
评论
0
经常看一些网站页面源代码中的css文件和js文件后面带一个问号,后面跟着一连串数字或字符,这是干什么用的?这个方法我也用过,而且很好用?,它的作用有两个:1、作为版本号,让自己方便记忆、查找;2、作为修改标签,让浏览器重新下载新文件。其实css文件后面得问号起不到实际作用,仅能当作后缀,如果用问号加参数的方法,可以添加版本号等信息,比如新浪、facebook上用到的:你可以从version后面清楚地看到这个css文件是何时修改过的,而且当修改过CSS文件并上传到服务器后,还可以让浏览器重新下载这个css文件,解决不刷新缓存的问题。这么一讲就清楚了吧?一个很小的细节,却能为我们添加许多方便之处。...
JavaScript
基础概念
一行代码判断是否移动端
云淡然
6/23/2015, 7:25:27 PM
一行代码
访问
1825
·
评论
2
通过判断是否支持触摸,支持触摸的设备大都都是移动端。这里为什么用ontouchend的原因是,ontouchend相对于ontouchstart、ontouchmove、ontouchcancel来说长度最短。通过判断用户代理字符串中是否包含mobile关键字。...
JavaScript
基础概念
异步编程之co:源码分析
云淡然
6/22/2015, 2:05:45 PM
JS 异步编程
访问
1384
·
评论
0
大家如果能消化掉前面的知识,相信这一章的分析也肯定是轻轻松松的。我们这一章就来说说,我们之前一直高调提到的co库。co库,它用Generator和Promise相结合,完美提升了我们异步编程的体验。我们首先看看如何使用co的,我们仍旧以之前的读取Json文件的例子看看:大家看上面的代码,甚至是可以使用同步的思维,不用去理会回调什么鬼的。我们readFile()得到filename,然后再次readFile()得到json,解析完json后输出就结束了,非常清爽。大家如果不相信的话,可以使用原生的异步api尝试一下,fs.readFile()像上面相互有依赖的,绝对恶心!...
JavaScript
基础概念
异步编程之Generator(2):剖析特性
云淡然
6/22/2015, 2:00:37 PM
JS 异步编程
访问
1127
·
评论
0
继上一篇见识过其配合promise带来的超爽的异步编程体验,我想应该大部分同学都会想好好看一下,到底这个Generator是什么?接下来我们会对Generator的特性进行剖析,让我们对接下来学习co源码打个扎实的基础。我们首先得知道,Generator一开始并不是用来做异步编程的,是后来的大牛们挖掘了它的特性,让它在异步编程里大放异彩。其实Generator是生成遍历器的构造器,ES6定义了一个遍历器的接口Iterator。任何数据结构满足Iterator接口,都可以统一实现遍历操作。一步一步的调用next()或者for..of循环都可以遍历实现Iterator接口的数据结构。...
JavaScript
基础概念
异步编程之Generator(1):领略魅力
云淡然
6/22/2015, 1:56:41 PM
JS 异步编程
访问
1196
·
评论
0
回顾一下我们之前学习的promise。我们巧妙利用了promise/deferred模式,用链式结构代替了嵌套回调的结构,大大缓解了回调地狱。我们再来看看之前我们举的那个异步串行队列的例子吧!假设我们有一个hello.txt,里面存了一个JSON文件的文件名,我们需要得到JSON文件的message属性的值。步骤如下:这个例子我们之前也是举过非常多次的,我们尝试使用Promise链式结构完成:...
JavaScript
基础概念
异步编程之Promise(3):拓展进阶
云淡然
6/22/2015, 1:51:06 PM
JS 异步编程
访问
926
·
评论
0
在前面的文章中,通过了解promise能做什么,实践动手从原理上了解promise/deferred模式的用法,相信大家应该更期待这次的功能拓展。我们不仅需要让单异步操作promise化,我们还需要从实际出发,拓展更多有用的功能。直接看一下我们这一次需要做的两个功能:这两个功能用我们之前自己写的简陋promise库,是无法做到的。我们不能在指定多个promise异步完成后,再触发回调。也不能让多个promise异步像排队一样,一个一个的进行,甚至下一个promise的参数是依赖上一个promise的。这就是我们接下来需要解决的问题:...
JavaScript
基础概念
异步编程之Promise(2):探究原理
云淡然
6/22/2015, 1:35:37 PM
JS 异步编程
访问
1191
·
评论
0
在异步编程之Promise(1)里,我是翻译了一篇文章,里面是探究promise的模式和领略它的魅力。我们可以利用promise,缓解回调函数给我们带来的回调金字塔。使用链式结构书写,使代码更加简洁易懂,易于控制。但是对于构造promise和其内部的实现,却用草草的一句newPromise()就带过。这一次,借着阅读朴灵大神的《深入浅出Node.Js》,我们自己动手实现一个小小的基本的promise吧。...
JavaScript
基础概念
异步编程之Promise(1):初见魅力
云淡然
6/22/2015, 11:38:54 AM
JS 异步编程
访问
1215
·
评论
0
思考一下,下面这段用来读取文件并解析JSON的Javascript同步代码。它很简单并且易于阅读,但是因为它会阻塞代码,你并不会想用在大多数的应用里。这意味着,当你用它来读取文件的时候(它需要很多时间)不会有其他的事情发生。为了让我们的应用高性能且实时响应,我们需要让所有涉及到IO的操作都变成异步的。最简单的方法去实现它就是使用callback回调。然而,一个幼稚不成熟的代码实现也许会让它出错。...
JavaScript
基础概念
用 Koa 写服务体验
云淡然
6/22/2015, 2:25:39 AM
访问
1132
·
评论
0
晒一下自己用Koanextgenerationwebframeworkfornode.js写的一个web服务这个web服务主要是做内容的列表展示和搜索的(可能说得比较抽象,但确实是web服务最常需要做的事情)主要的文件一共就2个:其中model.js是和具体业务逻辑相关的,就不多介绍了,这也不是Koa的核心;而app.js的代码可以体现Koa的很多优点,也使得代码可以写得非常简练而去清晰——这是我自己都完全没有想到的事情...
JavaScript
基础概念
初窥JavaScript事件机制的实现(二)—— Node.js中定时器的实现
起安
6/19/2015, 4:10:32 PM
访问
1180
·
评论
0
上一篇博文提到,在Node中timer并不是通过新开线程来实现的,而是直接在eventloop中完成。下面通过几个JavaScript的定时器示例以及Node相关源码来分析在Node中,timer功能到底是怎么实现的。无论是Node还是浏览器中,都有setTimeout和setInterval这两个定时器函数,并且其工作特点基本相同,因此下面仅以Node为例进行分析。...
JavaScript
基础概念
初窥JavaScript事件机制的实现(一)—— Node.js事件驱动实现概览
起安
6/19/2015, 4:08:12 PM
访问
1475
·
评论
0
虽然在ECMAScript的标准里并没有(也没有必要)明确规定“事件”,但是在浏览器中,事件作为一个极为重要的机制,给予JavaScript响应用户操作与DOM变化的能力;在Node.js中,异步事件驱动模型则是其高并发能力的基础。学习JavaScript也需要了解它的运行平台,为了更好的理解JavaScript的事件模型,我打算从Node及浏览器引擎源码入手,分析其底层实现,并将我的分析整理为一系列博文;一方面作为笔记,另一方面也希望能与大家交流,分析和理解有疏漏偏颇之处,还望各位斧正。...
JavaScript
基础概念
coolie PK webpack 之二:CSS 文件的合并与压缩
云淡然
6/19/2015, 12:04:37 PM
coolie介绍
访问
11918
·
评论
14
接前文,下面开始进入静态资源的合并与压缩中的第2项:CSS文件的合并与压缩。在前文的基础上,准备以下文件和目录single1.css的内容为single2.css的内容为...
JavaScript
基础概念
coolie PK webpack 之一:JS 文件的合并与压缩
云淡然
6/19/2015, 12:00:35 AM
coolie介绍
访问
19362
·
评论
13
本文只在前端构建维度上讨论webpack和coolie,分析他们两个工具谁更好、更优秀。关于如何使用webpack和coolie,暂且不在本文讨论范围内。把less文件编译成css文件属于构建?把coffee编译成js属于构建?压缩JS、CSS属于构建吗?合并JS、CSS属于构建吗?...
JavaScript
基础概念
←
1
«
5
6
7
8
9
»
16
→
20 条/页