Submitted by gouki on 2010, May 10, 9:39 AM
来自于hello,JavaScript的收藏,我也小小的收藏一下:
http://www.beiju123.cn/blog/?p=513
- F = 8×{100-[4×(JS文件数-3)+4×(CSS文件数-2)+3×(CSS背景图连接数-6) ] }
- +6×(100-10×未使用CDN的连接个数)
- +10×[100-11×(Expire时间小于172800秒的连接个数) ]
- +8×[100-11×(文件大小大于500字节且 未使用gzip的连接个数)]
- +4×[body中没有CSS连接 ? 100∶ (99-10×body中的CSS连接数) ]
- +4×(100-5×head中的JavaScript连接数)
- +3×[不存在CSS表达式 ?100: (90-2×CSS表达式数目) ]
- +3×[100-5×(域名数-4)]
- +4×(100-10×未精简的CSS与JS个数)
- +4×(100-10×Redirect个数)
- +4×[100-5×(重复的JavaScript个数+重复的CSS个数) ]
- +2×(100-11×未使用Etag的连接个数)
- +4×(100-5×未缓存或者缓存时间不足3600秒的AJAX请求个数)
- +3×(100-5×请求方式不是GET的AJAX个数)
- +3×{DOM元素数量<MaxDOM ?100∶ [99-10×⌈((DOM元素数量-900))/250⌉ ] }
- +4×(100-5×状态为404的连接个数)
- +3×[cookie大小不超过1000字节 ?100∶ (99-10×⌊页面cookie的大小/1000⌋ ) ]
- +3×(100-5×不满足cookie free要求的链接个数)
- +4×[100-(2×使用hack的filter个数+5×未使用hack的filter个数) ]
- +3×(100-5×在HTML代码中设定width和height的图片数)
- +2×[100-(favicon不可缓存或缓存时间小于3600秒 ? 5∶0)-(favicon大小超过2000字节? 5∶0)]
-
- Score = F / 89
Tags: yslow
PHP | 评论:0
| 阅读:17496
Submitted by gouki on 2010, May 7, 12:21 PM
在PHP开发中,有时候我们会不可避免的需要得到类中所有方法或者变量。也有的时候,我们需要知道某一个方法是否已经被定义,某一些类是否被加载,这时候,就需要用到一些比较少用的函数了。
1、获取类中所有的变量:get_class_vars。使用方法为get_class_vars('类名');如果在类外面调用,那么只能获取属性为public的变量,如果在内部调用,则可以获取所有的变量。当然,子类是无法获取父类的private属性的变量的。
2、获取类中所有的方法:get_class_methods,如用方法与get_class_vars几乎一样,但参数可以是类名,也可以是实例化后的类。同样,在内部可以获取所有的方法名,外部只能获取public方法。从PHP5开始,方法名返回的时候是区分大小写,而在PHP4的时候,全部返回小写(事实上方法本来对大小写无所谓的)
3、与1类似的方法:get_object_vars,它的参数只能是实例化后的object,其他的用法都与1相同
4、获取所有加载的方法,get_defined_functions,它会返回一个数组,其中以user为下标的数组就是当前被引用过的变量。当然也可以直接用function_exists来判断。
5、get_include_files,这个方法可以了解到当前页面加载了多少文件,在优化的时候可以参考,是否有文件被无意义的加载了
PHP | 评论:0
| 阅读:17121
Submitted by gouki on 2010, April 30, 10:28 PM
我这里说的历史上的今天并非网络上那种把几千年几百年的事情显示的那种历史上的今天,我说的是当某一个网站建站时间长后,数据量大的时候,可以开始考虑把前几年同一时刻发表的文章列出来。
我对于这个想法,在考虑用yii重构的时候就想过是否要加这个功能。虽然说这是画蛇添足,但在自己看自己的文章时,看到一年前两年前的文章时,你也可以了解到自己的思想到底有没有进步。去年这个时间你是在写一些垃圾,还是在写一些精华,现在呢?还是垃圾又或者已经进步了?
但,说白了,这个玩意对于其他浏览的用户来说,真的没有什么特别的意义,相反还会有反感,我为什么要看你一年前的东西,我关注是当前的内容,如果对于当前的内容有相关的资料,那还可以值得考虑一下。所以TAG相关文章就很容易被点击。
所以,历史上的今天对于增加内链是有好处的,但不是特别建议推广。我的思考是做类似于widget之类的功能放在内容页【并非一定】。
相反,我对于TAG有新的要求,一个网站,尽量不要超过200个TAG,最好都是一些有效TAG,否则一定会让人迷惑。或者说,其实你的网站也很乱,内容越杂,TAG也才会越多。当你精确于某几件事情,你的TAG应该是相对集中的。
wordpress的TAG表,设计的非常有意思。考虑过使用。crc和crt,如果真重构了,应该会用到。
Tags: history, thinking
PHP | 评论:0
| 阅读:16427
Submitted by gouki on 2010, April 30, 12:38 PM
做电子商务的不可避免的都会遇到价格区间的问题。这,主要显示在搜索的时候,如果你区间设的过大,那几乎把所有产品都列出来了。那和没有分区间没啥分别。因此,还真有一种算法可以解决这个问题(当然也只是基本解决,看上去不是特别的乱而己)。
这是在老王的博客上看到的:
means算法
Web开发中,CRUD做多了难免厌烦,其实还有很多细节可以挖掘,比如很多电子商务网站上都有商品价格区间,都是诸如1000-2000,2000-3000之类定死的,而没有按商品自己的分布规律来划分,此时有一种名为Kmeans的算法可以使用,效果很好,网上有很多现成的代码可以参阅,比如PHP的版本:
kmeanspp
K-Means Clustering in PHP
--EOF--
到百科看了一下,这么解释K-means:k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
虽然这样能够处理,老王也给了一个PHP的解决方案,但在实际中,应用的范围并能算是特别大,有时候还是直接手写的。以前的时候,我们是在分类里,直接把几个区间定义好,然后在搜索的时候指定某一分类时,自动调用这个区间。理由是,如果你的产品分的很散,从几块到几千块的都有,这种分类区间,就只能定义到分类上了。
不过上面的算法可以学习一下
Tags: kmeans, 老王, 聚合, 分类, 算法
PHP | 评论:0
| 阅读:24154
Submitted by gouki on 2010, April 29, 10:55 PM
一直在犹豫,是否要重构sablog,还是说仅仅把前台的模版系统重构一下就完事。
曾经想过是采用thinkPHP或者fleaPHP(用不惯Qee),但后来有各种各样的原因,导致就没有重构。
现在,文章数据也多了,有2年的数据了,也因此想要增加一点新功能,所以就在想着是否要重构一下。否则新功能加起来就很繁琐。
同时还要考虑一下模版,因为现在的模版太挫了,很多广告位都无法设定好,不是在顶部就是在侧部,根本没有人想点,如果在中间,或许点击的次数会多一点?
当然,我需要考虑的是缓存,一直以来sablog都是用的自带的文件缓存,虽然文件数量不大,但总也占着资源,为什么不把APC开启并使用呢?呵呵。。。
可是我还要考虑的是我原先博客里的代码高亮,虽然有想过要换到synaxhilight上面,但原来的数据怎么办?我总不可能一个个的改吧?
再然后就是,如果是换系统,那又得考虑数据迁移了,现在这样的后台,我还能够接受。一旦换系统,后台我还不一定能够熟悉呢。
最后,同一文章存放多个分类。。。【被朋友说话打断了,郁闷】
反正,就是一想法。
Tags: yii, sablog, 前端, 重构
PHP | 评论:5
| 阅读:25970