PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及 无界面测试 等。 PhantomJs官网:http://phantomjs.org/ GitHub:https://github.com/ariya/phantomjs/wiki/Quick-Start一、安装 安装包下载地址:http://phantomjs.org/download.html ,包括 ...
在Javascript的开发过程中,经常会遇到一些重复性的任务,比如合并文件、压缩代码、检查语法错误、将Sass代码转成CSS代码等等。通 常,我们需要使用不同的工具,来完成不同的任务,既重复劳动又非常耗时。Grunt就是为了解决这个问题而发明的工具,可以帮助我们自动管理和运行各种任 务。 简单说,Grunt是一个自动任务运行器,会按照预先设定的顺序自动运行一系列的任务。这可以简化工作流程,减轻重复性工作带来的负担。## 安装Gru...
变量是用于存储信息的容器: x=5; length=66.10; 还记得在学校里学过的代数吗?当您回忆在学校学过的代数课程时,想到的很可能是:x=5, y=6, z=x+y 等等。 还记得吗,一个字母可以保存一个值(比如 5),并且可以使用上面的信息计算出 z 的值是 11。 您一定没有忘记,对吧。 这些字母称为变量,变量可用于保存值 (x=5) 或表达式 (z=x+y)。JavaScript 变量正如代数一样,JavaScript 变量用于保存值或表达式。 可以给变量起...
本文实例分析了Jquery树插件zTree用法。分享给大家供大家参考。具体分析如下: 关于zTree的介绍就搜吧。 这个例子的最终效果如下:鼠标移动到一级目录时出现全选链接,点击全选链接该目录下的所有子项都被添加到收件人的文本框中,当然点击单个子项则添加一个。至于要添加些什么信息由自己决定。 1. 下载zTee,页面引入jquery.js,根据功能需求添加zTree相应的js和css代码如下:<script type="text/javascript" src="js/jquery-1.4....
本文是一篇JsRender的实用入门教程,实例讲述了tag else使用、循环嵌套访问父级数据等知识点。分享给大家供大家参考。具体如下: 前言 JsRender是一款基于jQuery的JavaScript模版引擎,它具有如下特点: 简单直观 功能强大 可扩展的 快如闪电 这些特性看起来很厉害,但几乎每个模版引擎,都会这么宣传。。。 由于工作需要,小菜才接触到此款模版引擎。使用了一段时间,发现它确实比较强大,但小菜觉得有些地方强大...
阅读本文需要有其他语言的编程经验。 JavaScript 中的简单类型包括: 1.数字 2.字符串 3.布尔(true 和 false) 4.null 5.undefined 此外的其他类型均是对象(我们不要被 typeof 操作符的返回值所迷惑),例如: 1.函数 2.数组 3.正则表达式 4.对象(对象自然也是对象) 对象基础 在 JavaScript 中,对象是属性的集合(对象为关联数组),每个属性包括: 1.属性名,必须为字符串 2.属性值,可以为除了 undefined 之外的任何值 通过...
阅读本文需要有其他语言的编程经验。 开始学习之前 大多数的编程语言都存在好的部分和差的部分。本文只讲述 JavaScript 中好的部分,这是因为: 1.仅仅学习好的部分能够缩短学习时间 2.编写的代码更加健壮 3.编写的代码更加易读 4.编写的代码更加易于维护 弱类型和强类型 通常来说,越早的修复错误,为之付出的代价就越小。强类型语言的编译器可以在编译时检查某些错误。而 JavaScript 是一门弱类型语言,其解释器无法检查类型错误...
阅读本文需要有其他语言的编程经验。 在 JavaScript 中数组是对象(而非线性分配的内存)。 通过数组 literal 来创建数组:代码如下: var empty = []; var numbers = [ zero, one, two, three, four, five, six, seven, eight, nine ]; empty[1] // undefined numbers[1] // one empty.length // 0 numbers.length // 10数组有一个属性 length(而对象没有)表示数组的长度。length 的值为数组的最大整数属性名加 1:代码如...
JavaScript 规范(ECMAScript)没有定义一套完善的能适用于大多数程序的标准库。CommonJS 提供了一套 JavaScript 标准库规范。Node 实现了 CommonJS 规范。 模块基础 在 Node 中,模块和文件是一一对应的。我们定义一个模块:代码如下: // circle.js var PI = Math.PI; // 导出函数 area exports.area = function(r) { return PI * r * r; } // 导出函数 circumference exports.circumference = function(r) { return ...
setTimeout 和 clearTimeout代码如下: var obj = setTimeout(cb, ms);setTimeout 用于设置一个回调函数 cb,其在最少 ms 毫秒后被执行(并非在 ms 毫秒后马上执行)。setTimeout 返回值可以作为 clearTimeout 的参数,clearTimeout 用于停止定时器,这样回调函数就不会被执行了。 setInterval 和 clearInterval代码如下: var obj = setInterval(cb, ms);setInterval 和 setTimeout 类似,不过 setInterval 会在每 ms 毫秒后(并非精...
Node 虽然自身存在多个线程,但是运行在 v8 上的 JavaScript 是单线程的。Node 的 child_process 模块用于创建子进程,我们可以通过子进程充分利用 CPU。范例:代码如下: var fork = require(child_process).fork; // 获取当前机器的 CPU 数量 var cpus = require(os).cpus(); for (var i = 0; i < cpus.length; i++) { // 生成新进程 fork(./worker.js); }这里了解一下包括 fork 在内的几个进程创建方法: 1.spawn(comman...
尽管面向对象JavaScript与其他语言相比之下存在差异,并由此引发了一些争论,但毋庸置疑,JavaScript具有强大的面向对象编程能力本文先从介绍面向对象编程开始,然后回顾JavaScript对象模型,最后演示JavaScript中的面向对象编程概念。 JavaScript回顾 如果你对诸如变量(variables)、类型(types)、函数(functions)、以及作用域(scope)等JavaScript概念觉得心里没底,那么你可以阅读重新介绍JavaScript中的这些主题。你还可...
一旦你了解了网络套接字与WEB服务器的连接,你将可以从浏览器发送数据到服务器并且可以接收由服务器返回的响应数据。以下是创建一个新的WebSocket对象的API: 代码如下:var Socket = new WebSocket(url, [protocal] );这里第一个参数是指要连接的URL,第二个参数是可选的,如果需要的话,则是指定一个的服务器支持的协议。WEB Socket属性:属性 说明Socket.readyState readyState的代表的ReadOnly属性的连接状态。它可以有以下值:...
本书状态 你正在阅读的已经是本书的最终版。因此,只有当进行错误更正以及针对新版本Node.js的改动进行对应的修正时,才会进行更新。 本书中的代码案例都在Node.js 0.6.11版本中测试过,可以正确工作。 读者对象 本书最适合与我有相似技术背景的读者: 至少对一门诸如Ruby、Python、PHP或者Java这样面向对象的语言有一定的经验;对JavaScript处于初学阶段,并且完全是一个Node.js的新手。 这里指的适合对其他编程语言有一定经验的开...
一个完整的例子上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾。这个例子包含如下文件: 1.index.html——主页面。2.sea.js——SeaJS脚本。3.init.js——init模块,入口模块,依赖data、jquery、style三个模块。由主页面载入。4.data.js——data模块,纯json数据模块,由init载入。5.jquery.js——jquery模块,对 jQuery库的模块化封装,由init载入。6.style.css——...