13 4月 2013

伪静态网页的优点和缺点

我们应该选择伪静态还是真静态?

一、为什么选择伪静态?

有很多用户说:真静态不好吗?为什么不用真静态?访问起来不是更快吗?负载不是更好吗?等等等等。。。。。。

在这里,其实只用一个问题来回答:为什么选择MYSQL?很多用户大概不明白为什么那么多大型论坛都选择了MYSQL数据库作为储存机制,大概大部分都是想:“因为DZ用了MYSQL,所以就是MYSQL”。

其实不然,试想DZ为什么会在那么多论坛程序并存的日子生存下来并笑傲江湖,很大原因是因为DZ用了MYSQL。试想如果大C当年改的程序是一个文本论坛,那还会有DZ的今天吗?或者从另一个角度问,为什么那么多大型网站都选择了MYSQL而不是文本作为储存机制?

所谓文本论坛,实际就跟真静态的说法差不多了,将数据储存在空间上面,大量读写硬盘,等等。。。。。。

为什么这种写法会被淘汰呢?我相信答案不会是老师所说的:“Discuz!目前有 2129867 篇帖子,存储成html的话大约是 20799M,也就是 20G左右。这当中还不计算由于磁盘存储机制造成的空间浪费(100个 1k的文件占用的空间可能会是200K)。”

这种说法从我个人观点来看,这个理由不能给用户不使用真静态充分的理由。然而,另一个理由却是值得我们注意思考的,也是为什么绝大多数站都不选择生成静态:

“删除、更新这些html内容会导致大量的磁盘io操作以及大量的磁盘碎片。”

正如上面的说法,在实际当中确实会导致大量的磁盘I/O操作(input/output),大量进行I/O操作带来的后果可想而知,会产生大量的磁盘碎片甚至会导致硬盘出现坏道。

所以对于生成静态而言,还不如去用文本论坛,可以更好的解决你们的需求。(副W就是做文本论坛出生的,当时的名字为ofstar,后因发展困难转为MYSQL,而PW生成静态页面也就是PW以前文本方式稍加改进用于吸引用户眼球的噘头)

当然,如果大家记忆力好的话,应该可以记得PW4的时候PW论坛不能访问很长一段时间,后来恢复到一段时间前的数据,官方的说法是被人攻击而导致硬盘损坏,其实这种说法是比较不可信的,相对于是被攻击导致硬盘损坏还是大量I/O操作而产生的后果,我个人更倾向于后者。

当然,如果大家比较关注5d6d的话,应该知道前几天有一天时间5d6d无法访问,根据非官方消息是因为硬盘坏了,而损坏的原因我想当然是因为大量用户大量进行I/O操作了,试想,我们一个论坛,进行磁盘I/O操作的仅为管理员进行更新缓存时进行的,而5d6d每一个会员就是一个管理员,试想下对磁盘是多大的考验?所以我并不奇怪5d6d的硬盘坏了。

当然,也许在读这篇文章的很多朋友都有使用过BT,也听说过BT对硬盘很伤,不能开多,而所谓伤害,和这里指的都是同一样东西,大量I/O导致磁盘出现碎片甚至出现磁盘坏道。

这里都是说些很实际的例子来说明问题了。

二、伪静态的用处

有些用户觉得,伪静态和真静态实际被收录量会相差很大,其实不然,从你个人角度,你去判断一下一个帖子到底是真静态还是伪静态?估计很难看得出,因为所谓静态的意思,就是地址中不带问号,不带问号的就是静态,管他是真的还是伪的?搜索引擎看得出吗?所以说,其实不论是真的还是伪的,其实对于搜索引擎来说都是一样的,搜索引擎没有说,你这个是伪的,我不收录你。

追根究底来说,为什么搜索引擎会不收录带问号的网址?因为搜索引擎怕由于问号而进入死循环,称为“搜索机器人陷阱(Spidertraps)”(以前动网就有这样一个漏洞,蜘蛛进去出不来了),所以很多时候带问号的地址搜索引擎是不会进去的,伪静态对于搜索引擎来说,其实就是静态,因为地址中没有带问号,所以没有真静态比伪静态收录得多的说法。

三、伪静态的坏处

当然犹如一篇文章的作者所说的:”如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的ISS数是1000。”

确实是这样的,由于伪静态是用正则判断而不是真实地址,分辨到底显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病。

13 4月 2013

实现百度地图(短代码版本)

经常在国外商业网站看到他们调用Google Map标注地理位置。突然也想提高点lifestyle,使用Wordpress短代码来添加很方便哟。国内的谷歌地图是使用iframe直接镶嵌的,随便搜一下也可以找到谷歌地图的WP短代码,但是不能用鼠标滚轮放大缩小(更加专业JS调用可以,不过要申请appkey,一个域名对应一个,比较麻烦)。顺便看了看百度地图API,不用申请什么appkey,而且样式按钮要比谷歌地图的要好看,底下的版权信息也干净……好吧,对我这种美化控来说,我这次选百度啊……废话少说上代码。

一、首先把百度地图API添加到收藏夹里,需要经常用到。

二、把下面的代码放到主题functions中:

function baidumap_shortcode( $atts ) {
extract(shortcode_atts(array(
‘width’ => ‘610’,
‘height’ => ‘400’,
‘center’ => ”,
‘zoom’ => ”
), $atts));

return ‘<script type=”text/javascript” src=”http://api.map.baidu.com/api?key=&v=1.1&services=true”></script>
<div style=”width:’.$width.’px;height:’.$height.’px;border:1px solid #ccc;” id=”dituContent”></div>
<script type=”text/javascript”>
function initMap(){createMap(); setMapEvent();addMapControl();}function createMap(){ var map = new BMap.Map(“dituContent”);var point = new BMap.Point(‘.$center.’); map.centerAndZoom(point,’.$zoom.’); window.map = map; }function setMapEvent(){ map.enableDragging();map.enableScrollWheelZoom(); map.enableDoubleClickZoom(); map.enableKeyboard();} function addMapControl(){var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_SMALL});map.addControl(ctrl_nav);}initMap();
</script>’; }

add_shortcode(‘baidumap’, ‘baidumap_shortcode’);

其中width、height数值是默认尺寸,可以根据主题来修改。
百度地图API还可以添加缩略图和比例尺等等,秉承simple is beautiful原则,我就去除掉了。想加上的自己添加一下相关JS。
百度地图API还可以添加缩略图和比例尺等等,秉承simple is beautiful原则,我就去除掉了。想加上的自己添加一下相关JS。

三、在文章中调用短代码,格式如下:

1
2
默认格式: [baidumap zoom=”地图级别” center=”X坐标,Y坐标”]
自定义尺寸:[baidumap zoom=”地图级别” center=”X坐标,Y坐标” width=”400″ height=”300″]
10 4月 2013

事实证明国内的cdn都暂时不靠谱

事实证明国内的cdn都暂时不靠谱

我只用过安全宝和加速乐。

总是有回源的问题和打开很慢的问题。

所以对于ping值在一百左右及以内的我建议还是暂时不要用了。

10 3月 2013

域名如何从 Akismet 黑名单中逃生

不幸的事情总会发生,不知道哪个缺心眼的家伙竟然把我的域名搞到 Akismet 的黑名单了。这样的结果是灾难性,这样我到哪里留言都徽不成功了,直接被判断为垃圾留言,虽然我不太留言。

这个时候怎么办?办法总是有的。就是到 Akismet 的 Contact 页面联系他,告诉他你被 Akismet 误判了,能不能帮忙从黑名单中删除?因为对方是美国人,只能看得懂英文文,如果你英文不够好,你可以使用下面这段英文:

My comments get caught by akismet by mistake. What can I do to make akismet identify my comments on others’ blogs as non-spams?

然后等上三四天,你就会收到对方的来信,告诉你他已经帮你从黑名单中删除,你测试下还有没有问题,有问题去再次联系他,回邮件就行了

09 3月 2013

html实现弹窗代码

<head>

<meta name=”keywords” content=”博客风,弹窗特效,js” />
<meta name=”description” content=”www.blogfeng.com 博客风” />
<title>网页特效 延迟弹出的窗口 博客风</title>
</head>
<body>
<a href=”http://www.blogfeng.com”>博客风</a>
三秒种后弹出新窗口
<script type=”text/javascript”>
function www_zzjs_net() {
window.open(“http://www.blogfeng.com”);//指定路径
}
setTimeout(“www_zzjs_net()”,3000); //设置3秒钟后弹出窗口
</script>
</body>
</html>

27 2月 2013

关于cdn的看法

对于我这种什么都想去尝试的人来说,很早就用上了cdn服务。以前都是付费的,不过现在都是有免费服务了。国内的提供商免费服务一般都要邀请码,或者流量限制。不过李开复先生的安全宝,真的不错。没什么限制。不过分配的主机节点有些许限制。用cdn服务的站长,一般看重的是网站加速,就是让网站ping值低,打开快。安全宝(所有现有的cdn)对于没有备案的域名,是不提供国内的节点的,大部分在香港,日本等等。有些(那些网站速度已经很快了),比如说我,看重的是防cc攻击,掩饰真实ip等等。

这几天,发现安全宝的ping值都超过一百了,以前都是60左右的。于是,今天我果断停用服务了,因为我原来的ping值都在50以内。

不过,还是感谢安全宝。如果我的站是美国站的话,这种ping值得节点还是很好了,毕竟免费嘛。

最后,还是希望能有一些稳定的ping值很低的免费节点提供给我们吧。

25 1月 2013

分享 破除wordpress每次都要输入ftp账号信息

有些开启有安全模式的主机空间,需要破除每次都要输入ftp的麻烦。最好的当然是在后台关掉安全模式。
blogfeng推荐的方式是在wp-config文件中写入ftp信息。


define('DB_COLLATE', '');
define('FTP_USER','####');// FTP 或SSH用户名
define('FTP_PASS', '###'); // FTP用户密码
define('FTP_HOST', 'ftp://###'); //主机名:你的SSH/FTP服务器端