Raw POST Data PHP 获取 HTTP 原始 body 部分的数据

通常做网站开发时,POST 数据都是从页面 form 表单中提交到服务器,POST Data 都是 key_1=value_1&key_2=value_2 这样的形式。这样的字符串,PHP 会自动解析到 $_POST 数组中。 有另外一种应用场景,在开发基于 HTTP 协议的接口时,客户端把一段 XML […]

FCKeditor 2.6 安装 配置 问题 图片上传

今天给使用 Symfony 的项目装了 FCKeditor 编辑器,配了图片上传。 遇到一些问题,总结下。 安装时,为了简单,最好把解压的 fckeditor 文件夹放在 web/ 目录下。 在模板中加入编辑器很简单: $webDir = sfConfig::get(‘sf_web_dir’); // DocumentRoot 的服务端路径 […]

Web 前端开发 Firefox 扩展

我在搞 Web 前端开发时用 Firefox 浏览器,有几个必备的扩展,非常好用,今天整理一下,给大家分享,也给自己列个清单备忘。 Firebug 不用说了,必备 YSlow 网站性能优化建议 Web Developer 必备 Tamper Data 这个需要重点介绍,当你也要做服务端开发时,客户端和服务器交互的 http 头部和 body 到底是什么样,都能准确地列出来,这曾经帮我发现并解决过重要的问题,强烈推荐。 […]

http header Expires not modified 304

困扰了我好久,看了 YSlow 的文档,也看了好多网站优化的书,按照书上的说法,加了 expires 和 cache-control 头,静态文件被缓存后,浏览器就不会再次发送请求了。 可是我看 apache 日志,仍然是有请求发到服务器,apache 发送 304 响应头。虽然起到了缓存的作用,但我希望是完全的客户端缓存,也就是说浏览器根本不会向服务器发请求询问。 今天又 google […]

SofavDB_Debug_PDO MySQL 执行时间 日志

这个类可以完全替代 PDO,如果你需要知道自己的程序跟 MySQL 交互花费多少时间,而你又有洁癖,不想把自己的代码搞得一团糟,那我强烈地建议你试试这个 SofavDB_Debug_PDO。 通常,创建一个 PDO 连接,都是 new PDO()。 在开发环境中,你只需要把上面那个语句替换成 new SofavDB_Debug_PDO() 即可。 然后,凡是通过 prepare 的 […]

MySQL 索引 优化 Using filesort

MySQL 数据库,MyISAM 类型的表 table_item,有 5、6 个字段,主键是 id。 user_id 和 item_id 两个字段都是单独的 INDEX 类型的索引。 问题是如何发现的? 今天搞程序,在自己的开发环境下,打开一个简单的页面都要好长时间,不知道问题出在哪里,只发现硬盘灯闪个不停。 […]

Javascript 字符串 数字 浏览器 性能差别

我在做一个 Javascript 版的公历农历转换程序,功能完成后,需要对性能做优化。计算算法是在网上找的,原作者对历法的转换很精通,但对程序性能没有仔细考虑,当计算量大的时候,会给用户的浏览器造成很大压力,给用户的感觉就好像浏览器假死一样。 我花了2天时间在性能优化上,并在不同的浏览器下做对比测试,发现一个比较重要的差别,IE、Firefox 和 Chrome 之间的区别很大。 通常,生成一个月的日历,最多需要计算42天(可参考Google Calendar,每行代表一周7天,最多可能有6行)。 性能测试的时候,我让程序连续计算3年,共36个月,1000多天。 总的运行时间是: IE7: 2.828 s Safari3: 1.016 s Firefox3: 0.885 […]