浏览器的渲染性能

用户都 希望他们访问的web应用是可交互且运行流畅的。因此,作为web开发者,你也要在这方面多花点功夫。你所做的页面,不但要能被快速加载,还要能流畅运行:页面的滚动要快速响应手指的动作,动画和交互效果更要如丝般顺滑。

User interacting with a website.

要想编写高性能的web站点或应用,你需要充分了解浏览器是如何处理HTML/JavaScript/CSS的,从而确保你写的代码(或引用的第三方代码)是尽可能高效的。

60fps和设备刷新率

当今大多数设备的屏幕刷新率都是 60次/秒 。因此,如果在页面中有一个动画或渐变效果,或者用户正在滑动页面,那么浏览器渲染动画或页面的每一帧的速率,也需要跟设备屏幕的刷新率保持一致。

也就是说,浏览器对每一帧画面的渲染工作需要在16毫秒(1秒 / 60 = 16.66毫秒)之内完成。但实际上,在渲染某一帧画面的同时,浏览器还有一些额外的工作要做(比如渲染队列的管理,渲染线程与其他线程之间的切换等等)。因此单纯的渲染工作,一般需要控制在10毫秒之内完成,才能达到流畅的视觉效果。如果超过了这个时间限度,页面的渲染就会出现卡顿效果,也就是常说的jank,它是很糟糕的用户体验。 继续阅读

用JavaScript将数字转换为大写金额

项目中用到的,用JavaScript将数字转换为大写金额,分享出来给大家

var digitUppercase = function(n) {
var fraction = ['角', '分'];
var digit = [
'零', '壹', '贰', '叁', '肆',
'伍', '陆', '柒', '捌', '玖'
];
var unit = [
['元', '万', '亿'],
['', '拾', '佰', '仟']
];
var head = n < 0 ? '欠' : '';
n = Math.abs(n);
var s = '';
for (var i = 0; i < fraction.length; i++) {
s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
}
s = s || '整';
n = Math.floor(n);
for (var i = 0; i < unit[0].length && n > 0; i++) {
var p = '';
for (var j = 0; j < unit[1].length && n > 0; j++) {
p = digit[n % 10] + unit[1][j] + p;
n = Math.floor(n / 10);
}
s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
}
return head + s.replace(/(零.)*零元/, '元')
.replace(/(零.)+/g, '零')
.replace(/^整$/, '零元整');
};
console.log(digitUppercase(7682.01)); //柒仟陆佰捌拾贰元壹分
console.log(digitUppercase(7682));  //柒仟陆佰捌拾贰元整
console.log(digitUppercase(951434677682.00)); //玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整

 

Lazy.js,比Underscore 和 Lo-Dash更加优越的工具库

Lazy.js是一个JavaScript工具库,类似Underscore 和 Lo-Dash,但是底层引擎比其他库支持更多的用例,并且在大多数情况下性能更加优越。

Lazy.js versus Underscore/Lo-Dash

官网:http://danieltao.com/lazy.js/

github:https://github.com/dtao/lazy.js

注:截至目前,这个库仍然是实验版本。

Underscore.js-精巧而强大实用功能库

前言

从其他语言转向Javascript时,通常都会遇到一些困惑性问题。比如,Java中的HashMap在Javascript中如何实现?Javascript面向对象式编程如何实现继承?如何实现通用的iterator对集合对象做遍历?如何对Array实现快速排序?….

如果你真的可以自己实现这些功能,那么你的Javascript基础很扎实的!我很佩服你!但对于大部分人来说,这些基础功能应该是由底层API支持的,就像JDK一样。Underscore为我们提供了这样的一个实用工具包,而且它真的很实用!

只有你动手做了,你才能有收获。

目录

  1. Underscore介绍
  2. Underscore安装
  3. 集合部分:数组或对象
  4. 数组部分
  5. 函数部分
  6. 对象部分
  7. 实用功能
  8. 链式语法
  9. 字符串处理Underscore.String

继续阅读

一组java数据带来的行业奇迹–慕课网

作为国内最大的IT技能学习平台——慕课网,2014年12月4日再次创造业内一项行业奇迹。2014年6月9日上线的“JAVA入门第一季”课程经过短短5个月的时间,学习人数突破5万,创造行业首个单门课程学习人数奇迹。如此惊人的数据,令笔者不得不对慕课网的课程做了一个小小的深入研究。

moo

视频讲解+在线编程,混合式教学边学边练引领行业平台优势。 继续阅读

MongoDB中文社区发起人亲自操刀–带你走进mongoDB的世界

慕课网作为国内最大的IT技能学习平台,凭借强大的行业优势,邀请来自官方唯一认可的mongoDB中文社区发起人贝贝童靴,独家录制上线mongoDB课程,为喜欢mongDB的小伙伴们奉上一款实用、干货、权威的技术大餐。帅气、温文尔雅、有点小幽默、可爱的、贝贝童靴,来自BAT的高级开发攻城狮。擅长各种脚本语言,Python、lua、shell不在话下,技术走在最前沿他有丰富的mongoDB开发和集群管理经验,是国内mongoDB技术的权威代表之一。

 cc

随着互联网web2.0网站的兴起,NoSQL在国内掀起一阵热潮,其中风头最劲的莫过于mongoDB,越来越多的互联网公司都将mongoDB作为自己的首选数据库。mongoDB有自由灵活的文档模型,具备处理从百万到十亿级别数据量的能力,对于大数据量、高并发、弱事务的互联网应用都可以应对自如。鉴于mongoDB操作简单,免费开源,大大降低了运维成本,ebay,github,淘宝、京东、360、百度等互联网公司都将mongoDB作为自己的数据库。 继续阅读

慕课网独家上线:D2前端技术论坛精彩分享视频

慕课网独家上线:D2前端技术论坛精彩分享视频

10月25日,第九届D2前端技术论坛在杭州召开,D2是中国所有前端开发者的节日,旨在为国内前端开发者和网站设计师提供交流机会,共同分享技术的乐趣,探讨行业的发展。慕课网作为D2独家合作伙伴,将陆续上线2014年D2现场的精彩技术分享。

本届D2前端技术论坛上,多位来自淘宝、支付宝、阿里云、百度、腾讯等知名互联网公司的技术专家、资深工程师进行了技术分享,其中包括大量前端开发经验以及支付宝、蘑菇街、京东等企业的前端实践,前端开发人员不可错过!

t0182bc6712bcf4d0e0

11月7日,慕课网将上线部分技术分享,包括: 继续阅读

Github 的 CSS 风格指南

这个CSS风格指南是在GitHub内部用于应用程序的指南。我们鼓励您建立一个适合你自己团队的风格指南。在你阅读这个之前,你需要大致了解SCSS语法和KSS文档。虽然我们通过KSS文档把风格移植到了SCSS上,但请务必立刻升级整个元素的CSS。不要混合少量SCSS和无格式的CSS。

编码风格:

  • 用两个空格的“soft-tabs”来缩进
  • 在属性声明的“:”后加上空格
  • 在规则声明后的“{”前加上空格
  • 使用十六进制颜色代码#000,如果不使用RGBA
  • 使用//来做注释块(而不是/**/)
  • 文档风格与KSS相同

这里有个好的语法示例:

// This is a good example!
.styleguide-format {
  border: 1px solid #0f0;
  color: #000;
  background: rgba(0,0,0,0.5);
}

继续阅读

50 New jQuery Plugins For Web Developers

转载自:http://www.splashnology.com/article/50-new-jquery-plugins-for-web-developers/4141/

In spite of the fact that jQuery was released in January 2006 it still holds its position and it’s not surprising, because of its ability to add various elements without the necessity to write bulky and heavy code. Also, it’s getting even much more easier as the community of developers constantly releases plugins that allow web developers to enhance their projects. And to make your task simpler, in order you could just visit our site and choose some of these useful plugins, we’ve picked the best and the newest jQuery pluginsand listed them below.

Textualizer.js

A jQuery plug-in which transitions through blurbs of text, animating each character.
Textualizer.js in 50 New jQuery Plugins For Web Developers
Download

Impress.js

Impress.js is a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com.
Impress.js in 50 New jQuery Plugins For Web Developers
Download

Revolver.js

Revolver is a new content slider that makes no assumptions about your markup. 继续阅读