西红柿爱番茄

Feed Rss

存档: ‘Javascript’ 分类

礼拜一点小想法,写了个半成品,只供试玩,有心思再来优化解析方式,让它支持更多的语法。 试用地址:http://www.ilovejs.net/lab/makeHTML.html

按需加载,顾名思义就是在用户需要这个功能的时候就初始化这个功能,加载相关的脚本和样式文件等等。普通我们使用的方式,就是在需要的时候,就添加一个文件的url进行加载,并且用一个对象来记录已经加载过的文件。这种方式有些散乱,对于是随意加载的,那倒是不可避免,但是对于一个项目来说,页面的的功能和相应的文件是确定的,那么还是使用上面的方式的话,那么在后期的维护上会比较混乱,增加了成本。 对项目之外的文件加载,使用普通的方式散乱在代码中,也不太合适,那么就需要一个封装的加载器,统一加载文件的接口和调用方式。我下面将要讲的“加载器”,不是传说中的模块化中的加在方式,我更多的是从代码维护方面来考虑,使得一目了然的看到页面本身的功能需要按需加载一些什么文件列表,并且可以标记已经加载的文件,而不会使得url散乱在页面中。 //需要按需加载的内部文件列表映射 mis.classFiles = { ‘AjaxEvent’: ‘includes/ajax.lib.js’, ‘AjaxRequest’: ‘includes/request.lib.js’, ‘colorFade’: ‘includes/effects.lib.js’ } //标记已经include的内部文件 mis.includedFiles = {}; //对内的文件加载 mis.include = … 了解更多

条件表达式通常有两种表现形式,第一种:所有分支都是属于正常行为;第二种:条件表达式提供的答案只有一种是正常行为。其他都是不常见的情况。如果两条分支都是正常行为,就应该使用if~else的条件表达式;如果某个条件极其罕见,就应该单独检查该条件,并在该条件为真时立刻从函数中返回。 function getPayAmount(){ var result; if(isDead) result = deadAmount(); else{ if(isSeparated) result = separatedAmount(); else{ if(isRetired) result = retiredAmount(); else … 了解更多

《重构–改善既有代码的设计》这本书是去年买的了,利用晚上空闲时间看了大部分的内容,包括一些重构的技巧、良好代码的特点、代码可读性和提高语义化等。这本书改变了很多我之前所持有的观念,包括代码性能、模块化设计、结构样式逻辑分离等的思维。下面粗略的罗列几点目前自己从这本书中所理解到的其中一些知识: 重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地进行。 第一次做某件事情时只管去做;第二次做类似的事情会产生反感,但无论如何还是可以去做;第三次再做类似的事,你就应该重构。 ——“事不过三,三则重构。”

检测外联js是否加载完毕,这个相对来说比较简单,只需要处理onload和onreadystatechange在非IE和IE下做兼容,但是需要检测外联的CSS文件是否加载完毕,这个就有点恶心了,大致分成了三类:IE和Opera;Chrome和Safari、FF,这时候FF没有跟着大部队走了,这或许也是FF中的一个bug。 最理想的方式,无非就是统一使用onload来检测link元素是否加载完毕。但是事不与程序猿人愿~ 但是兼容办法还是有的。 在IE、Opera下,可以直接使用onload、onreadystatechange这两种方式都可以检测link元素是否加载完成,跟检测script一样的原理。 在Chrome、Safari等基于Webkit内核的浏览器下,估计就要监控document.styleSheets.length的变化了。Webkit内核的浏览器在处理document.styleSheets.length的方式是这样的,当加载完了一个link之后,length就会加1,那么这样的话,就可以使用setInterval的方式来检测length的变化了,对于同时检测多个link是否加载完成的方式也可以利用这个,看length增加了多少。《测试用例》示例如下: [javascript] var link = document.createElement("link"); var cn = document.styleSheets.length; var ti = setInterval(function() { if … 了解更多

最近突然脑子一热,Read It Later好、Instapaper也好,保存的网页都是在别人的服务器上,使用别人的工具来浏览,总感觉受牵制,干脆自己倒腾一个这样的工具,把数据提交到自己的网站空间里,之后使用Ipod Touch来看,这个更有保障,功能其实也就需要一个保存网页的URL并且在空闲的时候浏览,简单的一个收藏夹。并且可以顺便尝试使用Youtube的UIX事件机制。