I'm twiting

访问统计

free counters

javascript 项目实践经验总结(本文长期更新)

ie6下select的显示层级是最高的,即使div的z-index比它高也无法挡住,解决的方法是用透明的iframe去挡select,然后div挡iframe,间接的把select挡住。要点:1、iframe的z-index必须比div小。2、在写html时iframe必须和div并排,而不能是包含关系。ps. 建议写弹窗的js时就把加iframe的代码写进去,便于复用。
圆角图片:gif不支持半透明效果,而圆角边线是需要半透明的,所以gif做的圆角有毛边。png支持半透明效果,但是ie6不支持png。我的解决方法是用css3的border-radius,例如firefox就是-moz-border-radius,chrome就是-webkit-border-radius。ie6下直接忽略,不使用圆角。。。

mysql项目实践知识汇总(本文长期更新)

1、如果记录存在,则执行update,否则,插入一条新纪录:

INSERT INTO table (a,b,c) VALUES (1,2,3)

ON DUPLICATE KEY UPDATE c=c+1;

这里假设a为主键或者唯一索引,当a已存在时,则执行update部分,否则执行insert部分。ps. 要执行此语句必须有字段是主键或者唯一索引。
2、读写分离。对许多网站,读操作都远大于写,据说ebay读写比例高达265:1,而且还在不断增长。很多这样的网站都使用一种读写分离的方法来优化数据库。

读写分离的好处:

针对write db和read db进行配置,比如:a. read db设为读优先,写进程比如等待所有读进程完成才能写入。b. read db做索引,write db不做索引。做索引是利用写开销来换取读开销。
服务器资源配置最优化。
批量写入,减少数据库连接。
配合mysql proxy连接池功能,解决连接数超限的问题。平均分摊连接数。

读写分离的实现:

为了向请求端屏蔽db实现的复杂度,避免增减db服务器时修改请求端代码,可以在请求端和db集群间添加一个中间件:mysql proxy 来进行db请求的调度,从而在请求端完全屏蔽db实现的复杂度。
使用mysql proxy作为连接池,利用lua脚本将请求自动分发给write/read db。

3、系统变量concurrent_insert。MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值分别可以为0、1或2。

0 不允许并发操作
1 如果MyISAM表中没有空洞(即表的中间没有被删除的行),MyISAM允许在一个进程读表的同时,另一个进程从表尾插入记录。这也是MySQL的默认设置。
2 无论MyISAM表中有没有空洞,都允许在表尾并发插入记录

4、调节MyISAM的调度行为。

通过指定启动参数low-priority-updates,使MyISAM引擎默认给予读请求以优先的权利。
通过执行命令SET LOW_PRIORITY_UPDATES=1,使该连接发出的更新请求优先级降低。
通过指定INSERT、UPDATE、DELETE语句的LOW_PRIORITY属性,降低该语句的优先级。

5、一张MyISAM表由.frm, .myd, myi三个文件组成。

.frm 表结构
.myd 表数据
.myi 表索引

6、linux下mysql数据库文件存放地址:/var/lib/mysql

松江大学城处子搭(5月4日更新)

入夜,想找到心仪的女性的我,贪婪的在大学城搜索着下手的对象。在图书馆看到目标mm,打扮得很干净,披肩长发,皮肤细腻,我很受的那一型。
锁定目标。
分析:mm之前偶遇过两次,均无人相伴,应无男友。此时似乎班主任正在介绍职业规划的一些事情,mm仔细倾听,双眸注视,很有礼貌的样子,对其好感度 +10。在图书馆等了20分钟,终于说完,mm独自回家(ms无男友)?
尾随。。。
出馆至校园小道,校园一片静寂,我快步上前,“小姐,请问@#¥%……&*&……%¥#@(开始见招拆招乱提问)”。然后接着月光欣赏着mm细腻的皮肤。
不久,mm起疑,我心虚,分开走,1分钟后回追,“小姐,其实我是想认识你,咱们能联系吗?”(同时不自觉的前肢强迫症启动)。mm这才明白来意,侧着头说“没关系。。。不用。。。”,然后径直走了。。。我微笑目送。。。
本次处子搭结束。。。
======================   思考的分割线   ======================
总结:
1、时间:应以白天为佳,夜间搭讪mm的安全感比较低。
2、接触:应该正面接触,不能尾随或追上,从背面出现会让mm有防备心理。
3、开场:个人觉得直接开场,行就行,不行立马走人,这东西主要还是讲眼缘。
4、称呼:叫同学,切忌叫小姐。
ps. 照着这四条我完成第二搭,成功要到联系方式。:)

php求数组并集的函数

/**

 * 求多个数组的并集

 */

function array_union()

{

    $argsCount = func_num_args();

 

    if ($argsCount < 2)

    {

        return false;

    }

    else if (2 == $argsCount)

    {

     list($arr1, $arr2) = func_get_args();

 

     while (list($k, $v) = each($arr2))

     {

         if (!in_array($v, $arr1)) $arr1[] = $v;

     }

 

     return [...]

find+grep配合搜索文件命令解析

find ~/da -type f -name ‘*.php’ -exec grep -H ‘Main’ {} \;

第一个参数 ~/da 指定目录
-type f 搜索类型为文件
-name 文件名,支持通配符
-exec 结果作为参数给下边的命令执行
-H 输出文件路径
‘Main’ 搜索包含的结尾
{} \; -exec最后总是要加上他……

打开页面后立即弹出下载窗的方法

因公司项目需要,需要一新页面后立即弹出下载窗口,同时该页面还是有内容的(通常为产品介绍页)。类似Firefox下载页的效果。
方法一:
让我们看了一下Firefox的设window.location方法:

    if (gPlatformUnsupported) {

     var uri = location.protocol + '//' + location.host + '/en-US/firefox/unsupported-systems.html' + location.search;

     window.location = uri;

     return;

    }

这样做是可以完成功能,但是我的页面有ready方法(Jquery),一旦location后ready就不能用了。所以这个方法有局限性。
方法二:
Adobe所使用的方法:

<meta http-equiv="refresh" content="3;URL=http://airdownload.adobe.com/air/win/download/latest/AdobeAIRSDK.zip" />

目前来说这个方法比较好:1、支持延时。2、不会和ready冲突(不过我没有试过,额……)。

robots.txt的几点小知识

对于没有配置robots.txt的网站,Spider将会被重定向至404 错误页面,相关研究表明,如果网站采用了自定义的404错误页面,那么Spider将会把其视作robots.txt——虽然其并非一个纯粹的文本文件 ——这将给Spider索引网站带来很大的困扰,影响搜索引擎对网站页面的收录。
robots.txt可以制止不必要的搜索引擎占用服务器的宝贵带宽,如email retrievers,这类搜索引擎对大多数网站是没有意义的。
如果网站内存在重复内容,使用robots.txt限制部分页面不被搜索引擎索引和收录,可以避免网站受到搜索引擎关于 duplicate content的惩罚。
robots.txt同时也带来了一定的风险:其也给攻击者指明了网站的目录结构和私密数据所在的位置。

严肃的胡思乱想

是的,设计的东西没有人用,不要抱怨曲高和寡,是因为我们的努力还不够,制造的产品还不受欢迎,如果真正是好的产品,那用户一定能接受。
同时程序员应尽力避免过度设计。竭尽全力地去抽象各种方法,直至再也无法理解,这不应该成为生活的一部分。好的设计应该是稳定的,实用的,既满足需求又具备必要的扩展性的。
可以的话多掌握一些技术,不要只盯着某一项技术,要大胆地做出尝试,要更自信一点。