先说一个需求,我想给一个元素应用另外一个指定元素的样式,应该怎么做?对于一个特定的项目,我想通常做法是规范代码风格,直接把class复制过来就可以了。但现实情况可能并不会如此简单。
phantomjs实现了一个无界面的webkit浏览器。虽然没有界面,但dom渲染、js运行、网络访问、canvas/svg绘制等功能都很完备,在页面抓取、页面输出、自动化测试等方面有广泛的应用。
node.js中与生俱来的单线程编程、回调函数异步式风格让我们有时喜有时忧。先说单线程,很多人会费解于node.js的单线程如何能做到高并发?这个问题不是本文重点,点到为止。
Application Cache是HTML5为web应用离线使用而增加的api,虽然都是有关存储,但与LocalStorage、 Cookie、SessionStorage有相当大的不同。Application Cache存储的是一系列的请求资源,允许浏览器在请求这些资源的时候,不必通过网络。如果设计良好的话,使用Application Cache能达到离线状态下,web应用仍能带来友好的用户体验。
在node中,单线程是仅针对javascript而言的,其底层其实充斥着多线程。而如果需要在javascript中实现多线程,一种常见的做法是编写C++ addon,绕过javascript的单线程机制。不过这种方法提升了开发调试的难度和成本。像其他很多脚本语言,我们也可以把纤程的概念引入到node中。
node.js本身支持基于commonjs的javascript模块化,并且由于node.js环境下模块加载以同步为主,没有浏览器端异步加载的需求,所以node.js不支持AMD的异步模块化格式。在Lizard框架(公司使用的)中的代码模块化采用的是requirejs这个加载器,支持AMD模块。本文档介绍了node端版本的requirejs的用法,使得AMD模块也能在node端使用。
Javascript之所以为Javascript,很重要的原因是浏览器为其实现了DOM和BOM接口。但在node环境下,并没有DOM和BOM,所以html文档与其他类型的文档并无不同,很难进行处理。而前端大量的js类库在node环境下也毫无用武之地。这篇文档就来探究一下,如何在node端进行DOM操作。
在node端模拟localStorage时,发现它与session有一些共同点:用户敏感、数据量小等。于是决定使用session来模拟。
ajax的使用依赖于xmlHttpRequest对象。node及jsdom中均未实现此对象。要在node中实现ajax操作,应该有两种思路,一是重写$.ajax,使其不再依赖xhr;另一种方法则是为ajax实现一个node版本的xhr。
《CSS性能优化》系列文章针对提升响应速度,对CSS的性能优化做一些研究,并给出一些优化建议。俗话说,磨刀不误砍柴工。今天我们先要聊的不是具体的优化建议,而是CSS的加载过程。
Javascript中有一些一元操作符往往被我们所忽略,本文介绍几个有用的一元操作符。
网页中元素居中的需求很普遍,今天就要谈谈相对比较简单,使用场合更多的水平居中。
在项目中,我们常常有统计代码行数的需要,但是如果不利用第三方工具的话,面对一个项目(甚至一个工程或解决方案中若干个项目)中成百上千的代码文件,实在有一种力不从心的感觉。