当下的软件越来越流氓,经常会在安装的时候自动添加为开机启动项。要知道,开机启动项越多,开机速度越慢。通过windows的系统配置工具(在运行中输入“msconfig”即可打开),可以方便地禁用/启用启动项。很多优化软件,如超级兔子等也都提供了这样的功能。但到底它们是如何工作的呢?
其实启动项设置大多位于注册表的这个位置“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”。所谓的禁用/启用启动项,都是对注册表的操作。但各款软件的操作方式又有一些微妙的区别。下面来探究一下。
本人一直用的是超级兔子,就先来看看它的做法吧。
虽然搜狗率先推出了双核浏览器,但是这款浏览器的质量确实一般。我最不能接受的是:所谓正式版用的还是非稳定版的Webkit内核;使用了仿Chrome皮肤后,浏览器菜单显得很突兀。这两个问题在后续的小版本中也没有得到解决,估计要等到搜狗3.0了。
而率先提出双核概念的傲游,开发进度很慢。事实上我对傲游还是挺期待的,毕竟它一直专注于浏览器开发,用户体验也做得很好。而今天下午,傲游毫无先兆地发布了3.0的正式版。

正式版的界面与测试版的差别不大。首先也是模仿了Chrome的界面。不同的是,它在左上角放了一个登录按钮,右上角则是浏览器菜单按钮。感觉两个按钮完全可以合并,省一些空间。
在Diahosting租用的VPS月底要到期了,用了半年,挂过两次,还算是挺稳定的。不过,由于Windows系统的VPS费用颇高,而且只用来放博客也很浪费,所以决定不再续费了。
今早把博客迁移到香港的虚拟主机,服务商是最近在博客园打广告的易库网。估计服务器用的是香港国际带宽,速度比得上大陆的双线。服务器系统是Windows Server 2008,支持ASP.NET最新的3.5和4.0版本,算是比较专业的ASP.NET空间。
此外,服务商承诺15天无条件退款,也算是有了些保障,可以趁这段时间考察服务器的功能和稳定性能否满足需要。
其实最近已经在开发jRaiser 1.4.0以及jRaiser UI 1.0.0了,但是开发过程中发现了现有代码的部分BUG,所以还是先将其修复:
- 在$.util.parseTpl中添加容错处理,当模板为null时返回undefined,当values为空时返回模板内容。
- 优化了各种样式操作。
- 修正了$.event.fix在Opera下出现的异常。
- 优化了浏览器检测的逻辑。
- 在$.ajax.send的Ajax请求中增加X-Requested-With的header。
点击此处下载jRaiser 1.3.4。
说起模板引擎,很多人会认为这是后台的东西(如PHP的Smarty、Java的Velocity),跟前端没有关系。然而,随着前端的逻辑变得越来越复杂,引入模板技术已经是非常必要了。
模板引擎的主要功能就是把变化的数据融入到不变的模板中,并生成最终结果。目前,前端的主要数据格式无非是XML和JSON。
如果选择XML作为数据格式,XSLT就是最佳的模板语言。大三时做的一个社团网站就是采用了这样的模式。XML+XSLT的缺点非常明显:
- 兼容性问题。XML+XSLT在不同浏览器下的转换方式有所不同。
- XML、XSLT的语法都是极其冗余的,数据量相对较大。
如果选择JSON作为数据格式,似乎没有原生的模板语言可用,只能生拼
最近有网友在留言板里问到jRaiser和jQuery的冲突问题,特此写一篇文章进行解释。
冲突的根源
众所周知,jQuery是通过一个全局变量$来引用的,而jRaiser加载时也占用了$。因而冲突的根源就是全局变量$。说得明白点:当jQuery和jRaiser共存的时候,$究竟是谁?
分析jQuery和jRaiser的源代码可以知道,这两个库在加载的时候都会占用$变量。因此,按照覆盖的原理,谁后加载,$变量就是谁。
如何解决冲突
别名法
除了$,jQuery和jRaiser都占用了另外一个变量作为别名,这个别名就是库本身的名称。
jQuery("div"); // 使用jQuery
jRaiser("div"); // 使用jRaiser
使用别名的主要问题是输入不方便:“$”只有一个字符,而“jQue