订阅本站

Apache 2.4发布 直接瞄准Nginx

huangdijia 发表于 2012-2-22 分类 Web服务器 | 3条评论

最流行的Web Server发布了一个重大升级版,Apache HTTP Server 2.4的一个重要目标是大幅改进性能。新版改进了缓存、代理模块,会话控制,改进异步读写支持,等等。

Apache HTTP Server项目管理委员会和Apache基金会主席Jim Jagielski表示,他们希望终端用户能真正看到性能进步,表示Apache 2.4比许多以速度见长的Web Server更快,例如Nginx。

ThinkPHP中数据操作心得

huangdijia 发表于 2012-2-18 分类 PHP/PHP框架 | 发表评论

模板中使用函数,相信大部分的TPer都知道也用过吧。
案例:
获取用户名的方法

function get_username($uid){
    $row = M('User')->getbyUid($uid);
    return $row['username'];
}

在模板中通过uid显示用户名

<volist name="rows" id="row">
<tr>
    <td>{$row.uid}</td>
    <td>{$row.uid|get_username}</td>
</tr>
</volist>

这种方法相信大伙应该很常用吧?这种用法有两个不好的地方:
1、过多数据库操作;
2、数据操作的位置不合理,数据库连接过长。

优化方案:
1、尽可能把能合并的数据库操作;
2、数据操作应该保留在数据层,尽可能避免在视图里操作数据库,建议在视图开始前执行mysql_close(),断开数据库连接。

KindEditor(下面简称KE)虽然是一个国产货,可并不比洋货(CKEditor)逊色,尤其是插件和API功能,越来越出色了,其中4.0推出了代码高亮功能。
不过该功能在官方文档上并没有相关的说明,这一点要批评一下,这么好使的功能为什么不让大家都用上呢。
我整理了一下用法,供大家参考。

前台页面先加载插件脚本和样式:

<link rel="stylesheet" type="text/css" href="[kePath]/plugins/code/prettify.css" />
<script type="text/javascript" src="[kePath]/plugins/code/prettify.js"></script>
<script>
$(function(){ prettyPrint(); });
</script>

后台编辑器声明的时候加上插件样式,缺省这个参数,编辑器中插入代码跟普通文字一样,并且再次编辑的时候被隐藏了,所以这一步很关键。

var editor = KindEditor.create('textarea.editor', {
    cssPath : ['[kePath]/plugins/code/prettify.css']
});

html判断浏览器版本

huangdijia 发表于 2012-2-7 分类 HTML(5)/CSS | 发表评论

判断浏览器版本的方法有很多,但是我个人认为最快,最有效的方法就是利用html来进行,因为无论是用js根据浏览器的属性来判断还是css中的hack,都需要先执行或者先渲染,而html方法则是从根源上上解决了问题(不符合的版本根本就不加载)

html的方法只是简单的一个if判断,应该算是if判断吧。。


其中可以用到的条件:

  • gt 大于
  • lt 小于
  • gte 大于或等于
  • lte 小于或等于
  • ! 不等、除了

比方说如果要匹配高于且包含ie7的版本的话,我们可以这样些

<!--[if gte IE 7]> IE7以及IE7以上版本可识别的内容 <![endif]-->

下面罗列出来一些常用的判断:

<!--[if !IE]> 除IE外都可识别 <![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 5.0]> 只有IE5.0可以识别 <![endif]-->
<!--[if IE 5]> 仅IE5.0与IE5.5可以识别 <![endif]-->
<!--[if gt IE 5.0]> IE5.0以及IE5.0以上版本都可以识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->

ThinkPHP 3.0RC2 更新日志

huangdijia 发表于 2012-2-4 分类 PHP/PHP框架 | 1条评论

ThinkPHP 3.0RC2 ChangeLog

[系统]
[修正] 修正R方法的第二个参数传人数组
[修正] 修正部署模式下的模版编译问题。
[新增] 添加项目的core.php配置文件,用于追加项目核心编译列表文件
[新增] 添加layout方法 用于控制布局入口的文件
[新增] functions函数库添加trace函数,用于页面Trace信息设置和自定义添加显示 并调整页面Trace行为扩展和模板,改为调用trace方法
[改进] 优化alias_import方法
[改进] 改进import的项目类库目录判断
[改进] Think类的buildApp方法改进 模式别名定义和项目别名定义支持同时定义 取消模式的公共文件定义,直接在核心文件列表中加载即可
[改进] 系统函数库增加session函数用于操作session App类改进对session的支持
[改进] 改进View类,如果设置模板引擎为PHP的话 则不调用view_parse标签行为扩展
[改进] 项目自定义trace信息配置文件会合并到系统默认页面Trace中
[改进] LOG类完善 支持配置不同的日子记录方式和其他参数 惯例配置文件增加LOG_TYPE、LOG_DEST和LOG_EXTRA配置 LOG_RECORD_LEVEL 参数更名为LOG_LEVEL
[改进] 优化import方法的文件导入 如果存在类名冲突则不导入
[改进] 改进系统函数库的load方法
[改进] runtime和alias文件添加访问检测
[改进] 修正部署模式下面开启页面trace后 exec运行时间为负数的错误
[改进] 修正Widget类对于think引擎的判断
[改进] 系统路径常量允许被重定义
[删除] 去掉runtime文件中的mkdirs函数
查看全文

这个很小的 iframe 标签(当然了,实际上它运行起来并不小)是一个强大到足以让一个64位的Win7系统崩溃的标签,它将导致 Win7 发生著名的蓝屏错误 Blue Screen Of Death (BSoD). 该漏洞是由 w3bd3vil 报告的。该漏洞在64位的Win7下的Safari 浏览器测试中招,我很讨厌蓝屏,因此没有测试其他浏览器。微软正在进一步验证该漏洞,下面是关于该漏洞的一些技术细节:

<iframe height='18082563'></iframe>

注意:请为自己的测试负责.

描述:
该漏洞是由于 win32k.sys 的一个错误导致内存的崩溃,当页面上包含一个 iframe,其 height 属性是个非常大的值时该错误就会发生。

目前该漏洞仅存在于64位的win7系统。

解决方案:
目前尚无有效方案