welefen的随笔

在线工具: js/css/html压缩

分类: 前端开发   标签: , , , , ,    评论: 1

之前为了编译平台写过一个前端语言的分析、检查、压缩工具FL,实际使用中主要用它的检查和支持模版语法的HTML压缩功能。集成在编译平台里一直运行的很好。现在把剥离出来,形成一个单独的JS/css/HTML压缩工具。

javascript/css/html压缩工具地址: http://www.welefen.com/lab/compressor/index.html

目前支持的功能有:

1、使用YUI Compressor或者Google Compiler压缩javascript

2、使用YUI Compressor或者FL压缩css

3、使用FL压缩html。虽然HTML压缩是支持模版语法的,但目录没有开启。如果有人需要的话可以将这个功能开启。

继续阅读 »

10-09
2011

Smarty3性能优化工具

分类: PHP   标签: , , ,    评论: 1

之前的文章中提到在一些复杂的模版页面中,Smarty3有性能问题。经过分析发现,主要是管理文件依赖,自定义函数参数以及一些依赖导致的。目前官方发布的新版本中虽然进行了一些性能优化,但并没有彻底解决这个问题。既然官方还没有解决,在实际项目中如何解决这个问题呢?

结合前端编译平台,可以在开发的时候还是使用Smarty3的这些新特性(毕竟这些新特性给开发和代码维护带来了非常多的便利),然后在上线前编译的时候将这些新特性的书写方式还原。如:将自定义函数还原到代码中。

经过一段时间开发和测试之后,目前已将代码放到github上,https://github.com/welefen/smarty3optimizer。有需要的同学可以了解下

继续阅读 »

09-30
2011

续: 如何减少代码上线过程中对服务的影响

分类: PHP, 前端开发   标签: , , ,    评论: 3

之前写过如何减少代码上线过程中对线上服务的影响,文中提到的方法是将所有的代码上到服务器的一个临时目录,然后一起操作cp到目标目录。这种方式虽然可以大大的减少上线过程中对线上服务的影响,可以影响时间缩短到2分钟以内。但对于0故障的服务来说,2分钟的服务故障还是非常不能接受的(比如:百度新首页)。

由于静态文件和模版是上到不同的服务器,静态文件还部署到CDN。模版是和后端代码放在一起。这样如果还是原文件名的不能彻底解决问题。

我们知道,任何的静态文件最开始都是在模版里引用了才生效,比如:在模版里有个link,或者有个外链的script。

通过分析,如果上线的时候,将静态文件先上,并且将有改动的静态文件全部重命名的话就可以彻底解决这个问题。一方面静态文件重命名后不会干扰线上正在使用的静态文件,另一方面模版还没上的时候,这部分新的静态文件将不会引用,待模版上线后就会全面切到新的静态文件模式下。

继续阅读 »

09-06
2011

新百度首页

分类: 我的生活   标签: , , , , , ,    评论: 6

新百度首页经过2个多月的内测昨天晚上终于全流量开放了,登录后就能看到新首页。并且成为百度2011世界大会的主角,由此今年的百度世界大会的主题为《耀在百度首页》。

这次新首页除了保留原有首页的所有功能外,特意添加了导航、实时热点、应用和新鲜事。

继续阅读 »

09-02
2011

音乐电台chrome插件发布2.0版本

分类: 前端开发, 浏览器插件   标签: , , , , , , , , ,    评论: 34

音乐电台是一款支持百度听、豆瓣电台、酷狗电台、虾米电台、酷我电台、乐酷电台、多米音乐、音悦电台、亦歌电台、人人电台、一首歌电台、百度音乐盒、搜狗音乐盒、Google音乐盒等14种电台的chrome插件,该插件已经放到chrome web store里,目前已经有700名安装用户。

通过收集大家的一些反馈,发现播放模式和选项不是太好用。最近对这块进行了重新的规划,周末在家将代码进行了完整的重构和升级,将版本升级到2.0。升级的功能如下:

继续阅读 »

08-16
2011

Imghash:相似图片搜索的php实现

分类: PHP   标签: , , , , , , , ,    评论: 8

前几天看到阮一峰的博客里写到关于相似图片搜索的原理, 里面介绍了Google相似图片搜索的大致原理,主要是从Neal Krawetz博士的LOOKS LIKE IT翻译而来。文章详细的介绍了相似图片搜索处理的相关步骤,并且给出了一个python的实现,由于我对PHP比较熟,所以写了个PHP的版本。 继续阅读 »

08-13
2011

sdch: chrome支持的新HTTP传输压缩算法

分类: 前端开发   标签: , , , , ,    评论: 3

概述

我们知道,为了加快网络传输,一般都使用gzip对文本进行压缩。如果你现在用最新版的chrome去访问页面,然后打开network控制面板,查看http headers,细心的你会发现在Request Headers里的Accept-Encoding不再是gzip,deflate,而是多了个sdch,变成了gzip,deflate,sdch。如图:

sdch

继续阅读 »

08-12
2011

如何让ThinkPHP支持ActionChain

分类: PHP   标签: , , , , , ,    评论: 0

什么是ActionChain

在MVC框架中,一般都提供对自定义URL的支持。也就是将所有的请求都重定向到index.php,然后PHP程序通过URL配置规则来确定执行什么样的逻辑。

随着产品业务逻辑越来越复杂,页面模块化程度越来越高,一个URL要执行多个逻辑功能。通常的情况就是在对应的Action里分别调用不同模块的接口,然后输出到模版。但这种方式对代码的维护和管理非常不方便,不能很快速的定位到一个URL执行了哪些逻辑。

ActionChain就是用来解决这个问题的,它可以在一个URL里指定按顺序执行多个Action,每个Action可以是相互独立的。这样可以极大的方便了代码的阅读性和维护性。

什么是ThinkPHP框架

THinkPHP是一个国人开发的已经有多年历史的框架,已经有越来越多的中小型产品使用这个框架开发。并且我也用这个框架开发了多个应用。

这个框架提供了大量的非常快捷的访问接口,这也是我为什么喜欢这个框架的原因。并且相对于Zend, Yii, CI等框架,要简洁的多。

http://thinkphp.cn/ 可以通过这个URL了解更多的信息

继续阅读 »

08-10
2011
loading...