分类:JavaScript|NodeJs

前端测试方法+工具

天气小雨,不宜出门。只好在家好好修炼,正好准备总结一下测试相关的知识。主要总结以下项目中用到的前端测试工具: mocha-phantomjs+chai来实现自动化单元测试 nightWatch 实现端到端的集成测试

多行超出尾部展示省略号(改进)

前言之前写过一个多行自动显示省略号的文章,网上也能查到很多资料。超出两行展示省略号, 这两天抽时间做了一个退化处理,就是支持-webkit-box属性的浏览器中采用css来控制,不支持这一属性的浏览器如IE9以上、火狐浏览器,则使用JS动态计算的方法裁剪文本,在文本末未追加省略号(…)。在这个过程中,出乎意外的发现了chrome浏览器的一个bug,版本 55.0.2883.87 m.

polyfill,shim,shiv之间有什么区别?

什么是polyfill和shim搜索了一下:在JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别?一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现;一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了。

如何理解function

想过function吗?Function作为Javascript的核心技术之一,清晰的理解function的机制和用法,对我们进行javascript开发非常重要。你有想过function是什么吗?ECMAScript 的函数实际上是功能完整的对象。其中function是javascript中定义函数的关键字,由function定义的函数是一个由代码集合而成的对象,属于引用类型。而Function则是javascript中的引用类型中的一种,类似Number和String和Object和Boolean。Function类可以表示开发者定义的任何函数。

freemarker中将object转换为json

为了兼顾SEO和前后端分离开发实践,仍然选用freemarker模板制作主要页面入口文件。比较蛋疼的是,比较通用的元数据一般是塞在模板的model中的,页面上需要使用freemarker语法通过字符串拼接的方式转换为需要的js变量挂到页面上来。每一次一不小心就会犯下错误。于是乎,俺就狠下心写一个freemarker模板的自定义function,直接将model中的object对象转换为json对象。虽然目前还不是很完善,许多类型都没有判断,但是已经很好用了。

浏览器工作原理

在 IE 占据 90% 市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。呃,里面只有数以百万行计的 C++ 代码… 这是一篇全面介绍 WebKit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。(原文:http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork /)