标签 javascript 下的文章

什么是 Event Emitter?

Event emitter 听起来只是触发一个事件,这个事件任何东西都能监听。

想象一下这样的场景,在你的异步代码中,去“呼叫”一些事件的发生,以及让你其他部分都要听到你的“呼叫”并且注册他们的想法。

为了不同的目的,对于 Event Emitter 模式有大量不同的实现,但是基本的想法是为了给一个框架提供事件的管理以及能够去订阅他们。

- 阅读剩余部分 -

一、window.innerWidth和window.innerHeight

概念:计算浏览器窗口的内部高度(不包括工具栏和滚动条)。
通俗的来讲:整个浏览器中能够显示网页内容的部分。
特殊情况

  1. 滚动条:减去滚动条部分,滚动条宽度15px;
  2. 开发者工具:比如firebug,如果开发者工具处于打开的情况,在当前情况计算的innerHeight数值是不包括开发者工具所占高度。

safari-client

var windowSize = {
    width : function () {
        return window.innerWidth 
            || document.body.clientWidth 
            || document.documentElement.clientWidth;
    },
    height : function () {
        return window.innerHeight 
            || document.body.clientHeight
            || document.documentElement.clientHeight;
    }
};
console.log(windowSize.width());
console.log(windowSize.height());


- 阅读剩余部分 -

一、前言

现在javascript的流行,前端的代码越来越复杂,所以我们需要软件工程的思想来开发前端。模块化是必不可少的,这样不仅能够提高代码的可维护性、可扩展性以及鲁棒性,更大的好处就是能够提升整个团队的开发效率,也能够让新进的程序员更快的接手工作。今天晚上根据前辈们的经验,写啦一个简单的模块定义的封装组件,当是练手吧。不过感觉还是蛮好用的。

二、学习模块化前我们应该先了解点什么呢?

其实突然就学习模块化的javascript开发,那还是比较丈二和尚,摸不着头脑的。不过如果是做过后台开发的程序员们,可能对于模块化的开发思想并不陌生,因为后台的这方面技术已经很熟悉了。那么这里我就分享一下前端javascript模块化开发的学习。

1. 了解模块化开发思想

如果有软件工程背景,那么这一思想就是你自身就应该掌握的。模块(module)就是可以组合、分解以及更换的单元,其实也满足组合大于继承等这些带来的好处吧。如果看成一个系统的话,我们可以从软件体系结构来理解,模块是较大系统中的独立部件,功能、状态与接口反映外部特性,逻辑反映的是内部特性。

- 阅读剩余部分 -