引用新浪微软Google的CDN加载jQuery内(类)裤。

有时候写个小页面,懒的加载这么大的jQuery库,或者你的网站速度不是很理想,这时候可以使用第三方的jQuery库,目前最佳的选择就是使用新浪Microsoft或Google提供的CDN jQuery源。

速度和稳定的原因,国内站点建议大家选用顺序为新浪微软Google的

新浪的:

http://lib.sinaapp.com/js/jquery/1.6/jquery.js
http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js

其他版本的: http://lib.sinaapp.com/?path=/jquery

微软的:

http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js

其他版本的:http://www.asp.net/ajaxlibrary/cdn.ashx

Google的:

path: https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js
path(u): https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.js

其他版本的:http://code.google.com/intl/zh-CN/apis/libraries/devguide.html#jquery

除了常规的调用方法外,Google也提供了相应的办法,那就是google load。我们只需要在页面里引用一个js文件,就可以根据需要实时加载用到的js库了。

首先在页头部分加入以下这行代码:


加载jQuery,可以这样使用:

google.load("jquery","1.6.0");
这样我们就从Google的最近的CDN镜像上加载了jQuery 1.6.0版的js库,接下来就可以正常写js代码了。不过,即使是Google的CDN镜像,下载也毕竟是需要时间的,万一代码库还没有下载完而浏览器已经解释到了下面的代码了怎么办?我们可以设定在js库加载完以后才开始执行js

google.setOnLoadCallback(function(){//要执行的代码});
新浪和Google还提供了其他js类库的CDN,比如EXT Core、jQuery UI 、Dojo等等。

虽然 CDN jQuery 源相当的稳定,不过我们也不能保证其能随时访问,所以我们还要给它另外一个选择,让它根据条件加载 jQuery,加一个备用源,如下:


也可以这样写:


其中第二个地址可以换成你本地的 jQuery 以保证链接稳定性。这样的意义是:先去加载谷歌的jquery库文件,如果加载失败那么就加载微软的 jquery 库文件。如果加载 google jquery 成功则会忽略后面的微软 jQuery 代码。

Continue reading...

PHP获取当前URL,并替换多个URL参数。

(原创)
PHP获取当前URL并替换指定参数,可以避免URL重复。
可以用来做分页。
测试版遇到问题请指正谢谢!

使用方法:thisurl('page');
如果多个参数请用符号隔开辟免出错。
例如:thisurl('page,sc,id');
以下是源代码:

  1. //PHP获取当前URL并替换指定参数。  
  2. function thisurl($keys=''){   
  3.     $pars = parse_url($_SERVER["QUERY_STRING"]);   
  4.     $pars = explode("&",$pars['path']);   
  5.     foreach($pars as $ps){   
  6.           $uri = explode("=",$ps);   
  7.           $url .= !strstr($keys,$uri[0]) ? "&".$ps : '';   
  8.     }   
  9.     return $_SERVER['PHP_SELF'].'?'.trim($url,"&");   
  10. }  

Continue reading...

刚哥写的牛B查询SQL语句。

  1. set @tmp_date = '2012-02-22';   
  2. #DATE_ADD(@tmp_date,INTERVAL 1 DAY)   
  3. SELECT  a.username  帐号,   
  4.                 a.tel 电话,   
  5.                 a.qq    QQ,   
  6.                 IFNULL(day1.money,'-') '2012-02-29(差额)',   
  7.                 IFNULL(day2.money,'-') '2012-03-01(差额)',   
  8.                 IFNULL(day3.money,'-') '2012-03-02(差额)',   
  9.                 IFNULL(day4.money,'-') '2012-03-03(差额)',   
  10.                 IFNULL(day5.money,'-') '2012-03-04(差额)',   
  11.                 IFNULL(day6.money,'-') '2012-03-05(差额)',   
  12.                 IFNULL(day7.money,'-') '2012-03-06(差额)',   
  13.                 IFNULL(day1.bitt,'-') '2012-02-29(百分比)',   
  14.                 IFNULL(day2.bitt,'-') '2012-03-01(百分比)',   
  15.                 IFNULL(day3.bitt,'-') '2012-03-02(百分比)',   
  16.                 IFNULL(day4.bitt,'-') '2012-03-03(百分比)',   
  17.                 IFNULL(day5.bitt,'-') '2012-03-04(百分比)',   
  18.                 IFNULL(day6.bitt,'-') '2012-03-05(百分比)',   
  19.                 IFNULL(day7.bitt,'-') '2012-03-06(百分比)'   
  20. from (   
  21.         select  tmp1.uid,   
  22. #                       tmp1.`date` date1,   
  23. #                       tmp2.`date` date2,   
  24. #                       tmp1.nhome nhome1,   
  25. #                       tmp2.nhome nhome2,   
  26.                         (tmp1.nhome - tmp2.nhome) money,   
  27.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  28.         from (   
  29.                 select  uid,   
  30.                                 `date`,   
  31.                                 sum(nhome) nhome   
  32.                 from swcms_income   
  33.                 where `date` = @tmp_date   
  34.                 GROUP BY uid,`date`   
  35.         ) as tmp1   
  36.         inner join (   
  37.                 select  uid,   
  38.                                 `date`,   
  39.                                 sum(nhome) nhome   
  40.                 from swcms_income   
  41.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7 DAY)   
  42.                 GROUP BY uid,`date`) as tmp2   
  43.         on tmp1.uid = tmp2.uid   
  44.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  45.                 and tmp1.nhome - tmp2.nhome > 0   
  46.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day1   
  47.         LEFT OUTER JOIN    
  48.         (   
  49.         select  tmp1.uid,   
  50.                         (tmp1.nhome - tmp2.nhome) money,   
  51.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  52.         from (   
  53.                 select  uid,   
  54.                                 `date`,   
  55.                                 sum(nhome) nhome   
  56.                 from swcms_income   
  57.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 1 DAY)   
  58.                 GROUP BY uid,`date`   
  59.         ) as tmp1   
  60.         inner join (   
  61.                 select  uid,   
  62.                                 `date`,   
  63.                                 sum(nhome) nhome   
  64.                 from swcms_income   
  65.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+1 DAY)   
  66.                 GROUP BY uid,`date`) as tmp2   
  67.         on tmp1.uid = tmp2.uid   
  68.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  69.                 and tmp1.nhome - tmp2.nhome > 0   
  70.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day2   
  71.     ON day1.uid = day2.uid   
  72.     LEFT OUTER JOIN  
  73. (   
  74.         select  tmp1.uid,   
  75.                         (tmp1.nhome - tmp2.nhome) money,   
  76.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  77.         from (   
  78.                 select  uid,   
  79.                                 `date`,   
  80.                                 sum(nhome) nhome   
  81.                 from swcms_income   
  82.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 2 DAY)   
  83.                 GROUP BY uid,`date`   
  84.         ) as tmp1   
  85.         inner join (   
  86.                 select  uid,   
  87.                                 `date`,   
  88.                                 sum(nhome) nhome   
  89.                 from swcms_income   
  90.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+2 DAY)   
  91.                 GROUP BY uid,`date`) as tmp2   
  92.         on tmp1.uid = tmp2.uid   
  93.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  94.                 and tmp1.nhome - tmp2.nhome > 0   
  95.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day3   
  96.         ON day2.uid = day3.uid   
  97.         LEFT OUTER JOIN  
  98.         (   
  99.         select  tmp1.uid,   
  100.                         (tmp1.nhome - tmp2.nhome) money,   
  101.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  102.         from (   
  103.                 select  uid,   
  104.                                 `date`,   
  105.                                 sum(nhome) nhome   
  106.                 from swcms_income   
  107.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 3 DAY)   
  108.                 GROUP BY uid,`date`   
  109.         ) as tmp1   
  110.         inner join (   
  111.                 select  uid,   
  112.                                 `date`,   
  113.                                 sum(nhome) nhome   
  114.                 from swcms_income   
  115.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+3 DAY)   
  116.                 GROUP BY uid,`date`) as tmp2   
  117.         on tmp1.uid = tmp2.uid   
  118.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  119.                 and tmp1.nhome - tmp2.nhome > 0   
  120.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day4   
  121.         ON day3.uid = day4.uid   
  122.         LEFT OUTER JOIN  
  123.         (   
  124.         select  tmp1.uid,   
  125.                         (tmp1.nhome - tmp2.nhome) money,   
  126.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  127.         from (   
  128.                 select  uid,   
  129.                                 `date`,   
  130.                                 sum(nhome) nhome   
  131.                 from swcms_income   
  132.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 4 DAY)   
  133.                 GROUP BY uid,`date`   
  134.         ) as tmp1   
  135.         inner join (   
  136.                 select  uid,   
  137.                                 `date`,   
  138.                                 sum(nhome) nhome   
  139.                 from swcms_income   
  140.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+4 DAY)   
  141.                 GROUP BY uid,`date`) as tmp2   
  142.         on tmp1.uid = tmp2.uid   
  143.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  144.                 and tmp1.nhome - tmp2.nhome > 0   
  145.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day5   
  146.         ON day4.uid = day5.uid   
  147.         LEFT OUTER JOIN  
  148.         (   
  149.         select  tmp1.uid,   
  150.                         (tmp1.nhome - tmp2.nhome) money,   
  151.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  152.         from (   
  153.                 select  uid,   
  154.                                 `date`,   
  155.                                 sum(nhome) nhome   
  156.                 from swcms_income   
  157.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 5 DAY)   
  158.                 GROUP BY uid,`date`   
  159.         ) as tmp1   
  160.         inner join (   
  161.                 select  uid,   
  162.                                 `date`,   
  163.                                 sum(nhome) nhome   
  164.                 from swcms_income   
  165.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+5 DAY)   
  166.                 GROUP BY uid,`date`) as tmp2   
  167.         on tmp1.uid = tmp2.uid   
  168.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  169.                 and tmp1.nhome - tmp2.nhome > 0   
  170.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day6   
  171.         ON day5.uid = day6.uid   
  172.         LEFT OUTER JOIN  
  173.         (   
  174.         select  tmp1.uid,   
  175.                         (tmp1.nhome - tmp2.nhome) money,   
  176.                         (tmp1.nhome - tmp2.nhome)/tmp1.nhome bitt   
  177.         from (   
  178.                 select  uid,   
  179.                                 `date`,   
  180.                                 sum(nhome) nhome   
  181.                 from swcms_income   
  182.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 6 DAY)   
  183.                 GROUP BY uid,`date`   
  184.         ) as tmp1   
  185.         inner join (   
  186.                 select  uid,   
  187.                                 `date`,   
  188.                                 sum(nhome) nhome   
  189.                 from swcms_income   
  190.                 where `date` = DATE_ADD(@tmp_date,INTERVAL 7+6 DAY)   
  191.                 GROUP BY uid,`date`) as tmp2   
  192.         on tmp1.uid = tmp2.uid   
  193.                 and DATEDIFF(tmp2.`date`,tmp1.`date`) = 7   
  194.                 and tmp1.nhome - tmp2.nhome > 0   
  195.                 and (tmp1.nhome - tmp2.nhome)/tmp1.nhome >= 0.1) as day7   
  196.         ON day6.uid = day7.uid   
  197.         INNER JOIN swcms_member a   
  198.         on day1.uid  = a.uid  

Continue reading...

MySQL MyISAM/InnoDB高并发优化经验.

最近做的一个应用,功能要求非常简单,就是 key/value 形式的存储,简单的 INSERT/SELECT,没有任何复杂查询,唯一的问题是量非常大,如果目前投入使用,初期的单表 insert 频率约 20Hz(次/秒,我喜欢这个单位,让我想起国内交流电是 50Hz),但我估计以后会有 500Hz+ 的峰值。目前的工作成果,额定功率 200Hz(CPU 占用 10 – 20,load avg = 2),最大功率 500Hz(这时 load avg > 20,很明显,只能暂时挺挺,应该在出现这种负载前提前拆表了)

INSERT DELAYED INTO

从 数据的插入开始说起。如果可以容忍结果几秒以后再生效的,可以用 INSERT DELAYED INTO,因为在我的这个结构中不需要对同一个 key 频繁的 INSERT/SELECT,因为 SELECT 我是用 Memcached 挡住了,除非 Memcached 挂了,或者数据实在老到过期了,才会去 SELECT。而且要注意,如果 PHP 不需要关心 MySQL 操作的返回结果,应该使用 unbuffered query,简单的说,在你提交 query 后,不用等待 MySQL 有返回信息就继续执行之后的 PHP 指令,具体用法是用 mysql_unbuffered_query 代替 mysql_query,如果用的 MySQLi 类,应该使用 mysqli->query($sQuery, MYSQLI_USE_RESULT);

如果 SHOW PROCESSLIST,可以看到用户名为 DELAYED 的进程,进程数量等于 INSERT DELAYED 的表的数量,因为表级锁的存在,每个表一条以上的 DELAYED 进程是没有意义的

Continue reading...

CentOS编译安装MySQL-5.5.20 cmake参数说明。

  1. cmake . \   
  2. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   
  3. -DMYSQL_DATADIR=/usr/local/mysql/data \   
  4. -DMYSQL_UNIX_ADDR=/var/tmp/mysql/mysqld.sock \   
  5. -DDEFAULT_CHARSET=utf8 \   
  6. -DDEFAULT_COLLATION=utf8_general_ci \   
  7. -DWITH_EXTRA_CHARSETS=all \   
  8. -DWITH_MYISAM_STORAGE_ENGINE=1 \   
  9. -DWITH_INNOBASE_STORAGE_ENGINE=1 \   
  10. -DWITH_MEMORY_STORAGE_ENGINE=1 \   
  11. -DWITH_READLINE=1 \   
  12. -DENABLED_LOCAL_INFILE=1 \   
  13. -DMYSQL_USER=mysql  

-DCMAKE_INSTALL_PREFIX= 数据库程序安装路径;
-DMYSQL_DATADIR= 数据库文件存放路径
-DMYSQL_UNIX_ADDR= 默认位置是/tmp/mysql.sock
-DDEFAULT_CHARSET= 默认数据库编码
-DDEFAULT_COLLATION= 默认数据库整理编码
-DWITH_EXTRA_CHARSETS= 扩展支持编码(all | utf8,gbk,gb2312 | none)
-DWITH_MYISAM_STORAGE_ENGINE= MYISAM引擎支持(1|0)
-DWITH_INNOBASE_STORAGE_ENGINE= innoDB引擎支持(1|0)
-DWITH_MEMORY_STORAGE_ENGINE= MEMORY引擎支持(1|0)

Continue reading...



about me

  • 陶之11's Blog Name:陶之11 OICQ:14779023 Site:Pao11.com

分类

快捷入口