您好,欢迎光临! 推荐您使用Chrome浏览器访问本站。

60行JavaScript代码俄罗斯方块游戏的解读

613 views
60行JavaScript代码俄罗斯方块游戏的解读网友注解: 总结起来主要是以下三点 1.使用eval来产生JavaScript代码,减小了代码体积 2.以字符串作为游戏场景数据,使用正则表达式做查找和匹配,省去了通常应当手动编写的查找验证代码 3.以二进制方式管理俄罗斯方块数据和场景数据,通过位运算简化比较和验证 另外,原作者代码换行很少,代码写的比较紧凑,这也是导致这个程序仅仅只有60行的一个原因。 <!doctype html> <html> <head> <title>俄罗斯方块</title> </head> <body> <d......

PHP session锁引起并发效率问题

690 views
PHP session锁引起并发效率问题PHP默认的会话处理器是session.save_handler = files(即文件)。如果同一个客户端同时并发发送多个请求(如ajax在页面同时发送多个请求),且脚本执行时间较长,就会导致session文件阻塞,影响性能。因为对于每个请求,PHP执行session_start(),就会取得文件独占锁,只有在该请求处理结束后,才会释放独占锁。这样,同时多个请求就会引起阻塞。 解决方案有3种: 1、在用完session的时候使用session_write_close()释放文件锁。 2、利用session_set_save_handler()函数是实现自定义会话处理。 3、自己写session类(写session操作较少......

mysql死锁-非主键索引更新引起的Deadlock

777 views
mysql死锁-非主键索引更新引起的Deadlock问题: 执行如下更新时产生死锁 UPDATE contactlist SET name=’xxx’ WHERE userid=’1′ AND contact_id=’90’ 报Deadlock found when trying to get lock; try restarting transaction 其中userid和c_contact_id都有索引,但不是主索引。 解决方式: 先通过userid=’1′ AND contact_id=’90’取得主键,再用主键更新。 注: 在采用INNODB的MySQL中,更新操作默认会加行级锁,行级锁是基于索引的,在分析死锁之前需要查询一下mysql的执行计划,看看是否用到了索引,用到了哪......

php常量定义,const与define的区别

600 views
php常量定义,const与define的区别【问】在php中定义常量时,const与define的区别? 【答】使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数。另外const在编译时要比define快很多。 (1).const用于类成员变量的定义,一经定义,不可修改。define不可用于类成员变量的定义,可用于全局常量。 (2).const可在类中使用,define不能。 (3).const不能在条件语句中定义常量。 例如: if (…){ const FOO = ‘BAR’; // 无效的invalid } if (…) { define(‘FOO’, ‘BAR’); // 有效的valid } (4).const采......

PHP性能优化之编码参考

624 views
PHP性能优化之编码参考用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。 PS:像count、strlen这样的操作其实是O(1)的,因此不会带来太多消耗......