摘要: 有没有想过自己在亚马逊眼中你是什么样子?答案是:你是一个很大、很大的表格里一串很长的数字。这串数字描述了你所看过的每一样东西,你点击的每一个链接以 及你在亚马逊网站上买的每一件商品;表格里的其余部分则代表了其他数百万到亚马逊购物的人。你每次登陆网站,你的数字就会发生改变;在此期间,你在网站上 每动一下,这个数字就会跟着改变。这个信息又会反过来影响你在访问的每个页面上会看到什么,还有你会从亚马逊公司收到什么邮件和优惠信息。许 多年来,推荐系统的开发者试过用各种各样的方法来采集和解析所有这些数据。最近这段时间,多数人都选择使用被称为个性化协同推荐 (Personalized Collaborati 阅读全文
posted @ 2013-12-09 12:35 jerry and zhang 阅读(1107) 评论(0) 推荐(0) 编辑
摘要: 在SQL标准中规划的(Join)联结大致分为下面四种:1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。2. 外联结:分为外左联结和外右联结。左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。右联结A、B表的结果和左联结B、A的结果是一样的,也就是说:Select A.name B.name From A Left Join B On A.id=B.id 和Select A.name B.name From B Right Join A on B 阅读全文
posted @ 2013-12-03 15:07 jerry and zhang 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: 我最近开始和Node.js打交道。以前做PHP开发,特别是Drupal,我发现向Node.js转移很容易,而且过程很愉快!但是我也需要学会从一些不同的角度思考。下面我列出了5项我认为PHP工程师应该知道的Node.js特点。1. Node.js是构建于Chrome的JavaScript引擎的Google的浏览器Chrome,有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎可以被独立出来。Node.js就是建立在V8之上的。这也是为什么Node.js会运行的如此之快。对于开发者来说,有几个好处:你不需要重新学习一门新的语言,它就是JS。我常常查看Chrome和Mozilla的JS 阅读全文
posted @ 2013-11-06 15:48 jerry and zhang 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。 2. echo is faster than print. echo 比 print 快。 3. Use echo's multiple parameters instead of string concatenation. 使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。 4. Set the maxvalue for your 阅读全文
posted @ 2013-11-01 09:07 jerry and zhang 阅读(201) 评论(0) 推荐(0) 编辑
摘要: Douglas Crockford是Javascript权威,Json格式就是他的发明。去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么。我非常推荐这个演讲,它不仅有助于学习Javascript,而且能让你心情舒畅,因为Crockford讲得很幽默,时不时让听众会心一笑。下面,我根据这个演讲和Crockford编写的代码规范,总结一下"Javascript编程风格"。所谓"编程风格"(programming style),指的是编写代码的样式规则。不同的程序员,往往有不同的编程风格。有人说,编译器的规范叫做" 阅读全文
posted @ 2013-11-01 09:01 jerry and zhang 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1.不要使用相对路径常常会看到:require_once('../../lib/some_class.php');该方法有很多缺点:它首先查找指定的php包含路径, 然后查找当前目录.因此会检查过多路径.如果该脚本被另一目录的脚本包含, 它的基本目录变成了另一脚本所在的目录.另一问题, 当定时任务运行该脚本, 它的上级目录可能就不是工作目录了.因此最佳选择是使用绝对路径:define('ROOT' , '/var/www/project/'); require_once(ROOT . '../../lib/some_class.php&# 阅读全文
posted @ 2013-11-01 09:00 jerry and zhang 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 摘要:一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法。然而,当面对庞大的访问量、高负荷的应用、有限的带宽....使用PHP的最大1个优势就是速度快。一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法。然而,当面对庞大的访问量、高负荷的应用、有限的带宽,以及其他各种带来性能瓶颈的因素时,就需要考虑怎样提高PHP的性能了。1、代码优化代码优化不仅仅是写出干净和清晰的代码,而是对代码进行一定的简化。可以使用Zend Optimizer来自动帮助完成这些繁杂的工作。Zend Optimizer可以从Zend T 阅读全文
posted @ 2013-11-01 08:42 jerry and zhang 阅读(3531) 评论(0) 推荐(0) 编辑
摘要: Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; }你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。第一种写法根据直觉,你可能觉得可以这样写: if (!myObj) { myObj =... 阅读全文
posted @ 2013-11-01 08:34 jerry and zhang 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 根据部分属性值选择如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)。假设您想选择 class 属性中包含 important 的元素,可以用下面这个选择器做到这一点:p[class~="important"] {color: red;}如果忽略了波浪号,则说明需要完成完全值匹配。部分值属性选择器与点号类名记法的区别该选择器等价于我们在类选择器中讨论过的点号类名记法。也就是说,p.important 和 p["important"] 应用到 HTML 文档时是等价的。那么,为什么还要有 "~=" 属性选择器呢?因为它 阅读全文
posted @ 2013-10-29 16:47 jerry and zhang 阅读(3030) 评论(0) 推荐(0) 编辑
摘要: jQuery方式获取的对象使不能直接使用JavaScript的一些方法的,许多人有疑问。原来jQuery获得的对象并不和我们平时使用getElementById获得的对象是一样的对象。所以一些新手就很迷惑,为什么$("#Element")不能直接innerHTML。这就是原因所在,解决方式请看下文。jQuery对象与dom对象的转换只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。普通的dom对象一般可以通过$()转换成jquery对象。如:$(document.getEl 阅读全文
posted @ 2013-10-23 11:14 jerry and zhang 阅读(136) 评论(0) 推荐(0) 编辑