May 21, 2009
FireFox 3.5+ 已不再支持 -moz-opacity
"安装了FireFox3.5之后,发现以前项目网页中有透明属性的一些DIV都不透明了。于是猜想,FireFox3.5难道不支持它自家的CSS透明属性-moz-opacity了?上网一查,果真如此。 在 https://developer.mozilla.org/En/CSS:-moz-opacity 里说得很清楚了: Note: Firefox 3.5 and later do not support -moz-opacity. By now, you should be using simply opacity. 现在都要改用opacity这个属性。\n于是要设置一下透明度为60%的DIV就应该这样写了: div.transp { /* make the div translucent */ opacity: 0.6; /* Firefox, Safari(WebKit), Opera) filter: “alpha(opacity=60)”; /* IE 8 */ filter: alpha(opacity=60); /* IE 4-7 */ zoom: 1; /* needed in …"
May 21, 2009
addEventListener的参数说明
"我想大家对这个函数的前两个参数已经很了解了吧,主要是第三个参数不很好理解。我查了一些资料,弄明白了这个问题,所以记录下来了。下面的内容,基本上是参考别人的。\n第三个参数叫做useCapture,是一个boolean值,就是true or false,如果是rue的话就是浏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是false,而会有影响的情形是目标元素(target element)有父元素(ancestor element),而且也有同样的事件对应函数,我想,看图比较清楚。\n像這張圖所顯示的,我的範例有兩層div元素,而且都設定有click事件,一般來說,如果我在內層藍色的元素上click不只會觸發藍色元素的click事件,還會同時觸發紅色元素的click事件,而useCapture這個參數就是在控制這時候兩個click事件的先後順序。如果是false,那就會使用bubbling,他是從內而外的流程,所以會先執行藍色元素的click事件再執行紅色元素的click事件,如果是true,那就是capture,和bubbling相反 …"
May 21, 2009
attachEvent与addEventListener区别
"适应的浏览器版本不同,同时在使用的过程中要注意 attachEvent方法 按钮onclick addEventListener方法 按钮click\n有关addEventListener函数的相关参数 请点击这里查看\n两者使用的原理:可对执行的优先级不一样,下面实例讲解如下: attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)\naddEventListener方法 用于 Mozilla系列\n举例: document.getElementById(“btn”).onclick = method1; document.getElementById(“btn”).onclick = method2; document.getElementById(“btn”).onclick = method3;如果这样写,那么将会只有medhot3被执行\n写成这样: var btn1Obj = document.getElementById(“btn1”); //object.attachEvent(event,function); …"
May 20, 2009
如何记录mysql慢查询sql日志
"修改my.cnf的mysqld部分: long_query_time = 1 //定义慢查询的时间1表示1秒 –log-slow-queries[=file_name] //记录慢查询到日志文件 –log-queries-not-using-indexes //将没使用索引的sql记录到日志文件 实例: [mysqld] long_query_time = 1 log-slow-queries = /usr/local/mysql5.0.40/var/slow_query.log log-queries-not-using-indexes = true\n“too many connections”找不到问题所在,后来发现打开mysql的慢查询会有很大的帮助就搞了一个.\n打开MySQL慢查询 MySQL慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添加log-slow-queries …"
May 20, 2009
mysql优化-缓存篇
"在整体的系统运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高系统的负载能力,降低 MySQL 的资源消耗迫在眉睫。 **1、页面缓存功能: ** 页面缓存功能降低MySQL的资源消耗的(系统本身就已经考虑,采用生成HTML页面,大大降低了数据库的压力)。 2、mysql服务器的优化\n2.1、修改全站搜索 修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql,再登录网站后台(模块管理-\u0026gt;全站搜索)重建全文索引。 2.2、记录慢查询sql语句,修改my.ini(my.cnf),添加如下代码:\n#log-slow-queries long_query_time = 1 #是指执行超过多久的 sql 会被 log 下来 log-slow-queries = E:/wamp/logs/slow.log #设置把日志写在那里,可以 …"
May 19, 2009
Apache 的信息查看模块——Server-Status
"前提:启用httpd.conf配置文件里的两个模块:| LoadModule status_module modules/mod_status.so LoadModule info_module modules/mod_info.so\n本文我们将讨论使用 mod_status 和 mod_info to 来告诉你目前服务器的工作情况 我可以得到什么样的信息? 使用 mod_status,你可以知道谁在你的服务器上看些什么东西,以及有多少人连在Web 服务器上。还有其他可能你的客户不关心的信息,但是对于你,一个站点管理员来说,却是十分有用的信息。\n客户喜欢这些资料 我不知道你的客户都是怎样的人物,但是我的客户喜欢我提供的信息。每天一次的信息还不够,因为到一天结束时才知道就太晚了。所以他们喜欢知道现在正在发生的事情。\nmod_info 和 mod_status 这两个模块可以提供十分有用的信息,而且十分方便。 mod_status 能准确地告诉你,你的服务器正在“想”什么。你可以知道有哪些人在浏览您的网站,有多少子进程在运行,以及这些进程在干吗。\n如果你使用缺省方法安装的 Apache 的 …"
May 19, 2009
解决win环境下Apache占用大量内存的问题
"我有个服务是在windows下的Apache2提供的。访问量不是很大,隔4、5天竟然停止服务,调查发现Apache2的进程httpd.exe占用内存达到了1.5G。在网上找到如下解决办法。\n用记事本打开apache2\\conf\\httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。\n原因是:\n通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请 求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。\n如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为 不断终止、启动子进程降低访问效率, …"
May 19, 2009
windows下nginx-0.7.10+php-5.2.6+fastcgi安装日志
"最近心里有点痒,打算怀下旧,搞个php玩玩。找了几台服务器想装个php,虽然是举手之劳,但是总觉得有点不方便。另外家里的宽带总被占线,所以在服务器上做测试那也比较痛苦。\n所以就想在本机弄个,记得以前有个apache php mysql的整合安装版,这可是个好东西,如果有人问我怎么在windows装php啊,我顺口就告诉他找这个,的确可以省不少力气。\n不过今天我就不想用这古老的玩意装机了,虽然这东西装得是快,不过我已经不怎么记得起apache的配置怎么写,甚至有点厌恶写那配置。\n于是我下了个nginx的windows版,然后再找个php的windows版,在http://www.kevinworthington.com/category/computers/nginx/,下完后先装nginx,没什么复杂,启动,在浏览器输入http://127.0.0.1,没有反应,看一下netstat -an,发现貌似80端口存在,估计这个端口不是nginx占用的,于是关掉所有开启的程序,再启动,再刷新,就可以看到有一个测试页出现了。\n这样算是弄完了一个东西,接下来装php吧,先把它解压到d盘,放 …"
May 16, 2009
如何根据rowid获取extent_id
"我们知道,rowid是由四部分组成的,分别是data_object_id,file_id,block_number和row_number,通过oracle提供的dbms_rowid包可以很方便的将一串rowid解析出上述四部分的内容。然后根据这些信息,则可以获取其extent_id。\nSYS@datac\u0026gt;declare 2 v_block_id number; 3 v_file_id number; 4 v_object_id number; 5 v_extent_id number; 6 v_object_name varchar2(30); 7 v_owner varchar2(30); 8 v_rowid varchar2(20):=\u0026#39;AAACrKAAXAAAAzUAAH\u0026#39;; 9 begin 10 select dbms_rowid.ROWID_BLOCK_NUMBER(v_rowid), 11 dbms_rowid.ROWID_RELATIVE_FNO(v_rowid), 12 dbms_rowid.ROWID_OBJECT(v_rowid) 13 …"
May 16, 2009
使用MySQL Proxy和MySQL Replication实现读写分离
"MySQL Replication 可以将master的数据复制分布到多个slave上,然后可以利用slave来分担master的读压力。那么对于前台应用来说,就要考虑如何将读的压力分布到多个slave上。如果每个应用都需要来实现读写分离的算法,一则成本太高,二来如果slave增加更多的机器,应用就要随之修改。明显的,如果在应用和数据库间加一个专门用于实现读写分离的中间层,则整个系统的架构拥有更好的扩展性。\nMySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用 lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多个proxy的连接参数即可。\n安装教程请参考: http://blog.haohtml.com/archives/9465\nMySQL …"