当我们了解了 CommonJS 以后,CommonJS 规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。
由于 Node.js 主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以 CommonJS 规范比较适用。
但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式。为什么呢?
CommonJS 详细介绍
CommonJS 规范与实现
正如当年为了统一 JavaScript 语言标准,人们制定了 ECMAScript 规范一样,如今为了统一 JavaScript 在浏览器之外的实现,CommonJS 诞生了。CommonJS 试图定义一套普通应用程序使用的 API,从而填补 JavaScript 标准库过于简单的不足。CommonJS 的终极目标是制定一个像 C++ 标准库一样的规范,使得基于 CommonJS API 的应用程序可以在不同的环境下运行,就像用 C++ 编写的应用程序可以使用不同的编译器和运行时函数库一样。为了保持中立,CommonJS 不参与标准库实现,其实现交给像 Node.js 之类的项目来完成。下图是 CommonJS 的各种实现。
如何解决内存泄漏引发的血案
之前做了一个谷歌浏览器的插件开发,它会打开一个链接,然后收集数据并上传。依次循环,但是跑的时间久了,内存就变得很高,然后浏览器就会变卡,慢慢的影响这个插件的运行,最后浏览器也会崩溃。
什么是内存泄漏
内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。在 C++ 中,因为是手动管理内存,内存泄露是经常出现的事情。而现在流行的 C# 和 Java 等语言采用了自动垃圾回收方法管理内存,正常使用的情况下几乎不会发生内存泄露。浏览器中也是采用自动垃圾回收方法管理内存,但由于浏览器垃圾回收方法有 bug,会产生内存泄露。
JavaScript 内存管理 & 垃圾回收机制
简介
低级语言,比如C,有低级的内存管理基元,像 malloc(),free()。另一方面,JavaScript 的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动释放”。后者被称为垃圾回收。这个“自动”是混淆并给 JavaScript (和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。
【转】为什么我们放弃了 Zepto
polyfill — Respond.js
Respond.js 让不支持 css3 Media Query 的浏览器包括 IE6-IE8 等其他浏览器支持媒体查询。
Respond.js 是一个快速、轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width特性,实现响应式网页设计(Responsive Web Design)。
腻子脚本 — HTML5Shiv
简介
HTML5shiv is a javascript workaround to provide support for the new HTML 5 elements in IE Browsers older than IE 9.
- 越来越多的站点开始使用 HTML5 标签。但是目前的情况是还有很多人在使用IE6,IE7,IE8。
- 而IE6,IE7,IE8是不能识别 HTML5 标签的。
- 这里提供一种让 IE 浏览器支持 HTML5 的方法,那就是使用 HTML5Shiv。
- HTML5Shiv 主要解决 HTML5 提出的新的元素不被IE6-8识别。
【转】为什么一些生活中很外向开朗的人会喜欢独来独往
因为他是一个内向的人。
不要怀疑,很多人都是这样。
内向的人,通过独处来恢复精力。
所以他们不是喜欢孤独,而是,孤独才是他们的常态。
他们跟别人交流、相处,其实都是在消耗精力。
下面详述:
Hexo-NexT搭建个人博客(四)
提示:本篇文章将介绍在使用 heox 做博客框架中的一些 bug 处理情况。
按照之前的教程介绍应该是会比较顺利的搭建好你的博客,但是难免会遇到一些意外,这个时候就要学会解决问题了。
解决问题的原则是:查看 bug 信息,从上到下依次解决 bug。
下面来看几个例子:
jQuery使用技巧
禁用页面的右键菜单
1 | $(document).ready(function(){ |
新窗口打开页面
1 | <!DOCTYPE html> |