关于Cold的结构和模块载入机制(上)

来自本人博客:http://ilovespringna.com/typecho/index.php/archives/34349/

这几个月一直在鼓捣的Cold框架,在自己的思考和借鉴了一些已有框架的方法后,算是有些成果了。尝试先写点小结,作为阶段性的巩固,因为代码越写越多,连自己都有些看不懂了。 在开始理清Cold的结构前,有几个关键的问题:

1、模块的颗粒度问题。

因为Cold现阶段的本质是利用前端的方式解决按需载入这一需求,因此每一个模块对应一个js文件,在应用中也相应地多出一个请求。如果像类似百度tangram以方法为粒度进行调度,便会多出成百上千个请求。或是极端考虑,整个框架为粒度(jquery,单文件模式),按需调用就没有意义。因此,需要在代码冗余度和请求数之间做平衡。

2、命名空间和模块名。

这里有三个术语:模块的文件路径,模块名,模块对象。其中模块名是唯一标识模块的主键,模块对象是在内存里命名空间中安排的位置,文件路径则是文件的物理位置,用于引用文件。 因此一个模块的元数据可能如下:
{
	name : 'dragable',
	filesrc : '/cold/component/dragable.js',
	namespace : 'Cold.dragable'
};
这样在声明和使用一个模块时,开发者需要分别指明这个模块的名称,路径,和模块对象,既容易冲突、难以记忆,而且需要多余的文件进行管理存储,这是我不喜欢的。 比如我声明了另一个模块dialog时,其依赖于模块dragable,那么理想的代码如下:
define('dialog',{ requires : ['dragable'] },function(){
	//do sth.
});
define在得到dialog的依赖项dragable后,并不知道dragable在哪,也不知道dragable在什么命名空间下,需要去别的文件中找到这个关系才能进行引用。因此Cold框架希望能够将这三个名称进行统一,本质上是模块定义的单一性。

3、模块依赖。

上面提到了我理想的模块依赖模型:开发者只需要在一处地方定义新的模块,只需要提供一个统一的模块标识符,在他的定义代码中能够做完所有的事,不需要重复定义和存储。模块依赖模型需要处理两个问题:递归依赖和循环依赖。 递归依赖,即模块a需要模块b,模块b需要模块c,形成一条a—b—c的依赖链。在这种情况下,c的定义代码必须先执行,然后是b,然后是a,而文件载入的顺序则可以随意。 循环依赖,即模块a需要模块b,模块b又需要模块a,这样就形成了无穷依赖,实际上是一个逻辑错误。 解决上面三个问题是Cold模块载入机制的目标。下一篇文章具体阐述Cold的结构和模块载入机制。

源码:https://github.com/afc163/cold

测试文件:http://www.ilovespringna.com/cold/test.html

转载于:https://www.cnblogs.com/afc163/archive/2011/03/24/1994099.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 冷重启和热重启的区别在于,冷重启是将设备完全关闭并重新启动,而热重启则是在不关闭设备的情况下重新启动设备的某些部分。冷重启会清除设备的所有缓存和配置,而热重启只会重新启动某些进程或模块,不会影响设备的整体状态。在网络设备的维护和故障排除中,冷重启和热重启都是常用的操作方式。 ### 回答2: Cold reset(冷重置)和Warm reset(暖重置)是两种不同的重置电子设备的方式。两者的主要区别在于它们的操作过程和重置前后的结果。 Cold reset是将设备完全关闭后重新启动的过程。这种操作通常是通过按下设备上的重置按钮或拔出电源插头来实现。这将完全清除设备的内存和缓存,重置设备的设置和配置,并重新启动设备。这种重置操作会使设备恢复到其出厂设置并删除所有数据和存储的文件。冷重置的作用为清空系统内存,恢复系统的初始状态。 相比之下,warm reset是在设备仍然保持启动状态的情况下进行的重新启动。这种操作通常是通过设备的控制台或通过软件进行的。Warm reset不会清除设备的内存和缓存,但会重新启动设备的设置和配置。Warm reset可以帮助设备解决软件问题,但不会对设备进行深度清理和重置。 综上所述,从功能上来看,Cold reset 和Warm reset完成了相似的任务,但Cold reset会更彻底,Warm reset则更为方便。然而,总体来看,两者都是非常有用的工具,可以帮助修复和优化电子设备的性能。无论使用哪种方法,每次重置前都应将设备的所有数据备份以便在重置后恢复。 ### 回答3: Cold reset和warm reset都是在电子设备中常用的重启方式。它们的区别主要在于重启的过程和效果。 Cold reset也称为硬重置,指的是完全断电后再重新启动设备。这种方式会清除设备中所有的缓存、配置和数据,并将设备状态恢复到出厂设置。Cold reset的效果类似于将设备恢复到刚刚购买时的状态,可以解决一些更加严重的问题,如系统崩溃、病毒感染等。 Warm reset也称为软重置,指的是在设备运行状态下进行重启,但是不断电。这种方式仅会重启设备,不会像Cold reset那样清除缓存、配置和数据。Warm reset通常可以解决一些普通的问题,如系统响应缓慢、程序崩溃等。 总体来说,Cold reset会清除所有数据,而Warm reset仅会重启设备。在进行重启操作时应谨慎选择,避免误操作导致重要数据的丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值