分类目录归档:web-trend

死链的检测查询工具和解决方法

在网站中存在死链不但对于搜索引擎不友好,而且也是用户非常讨厌的,相信无论谁在打开一个链接等待N久之后被告知无法访问的时候都会产生强烈的反感情绪,会对那个网站失去兴趣。所以对SEO优化者或者网站编辑人员,预防和减少死链都是一件很重要的工作,此外我们还需要有一些检测网站死链的工具和解决死链的方法。

检测死链的工具:

1)如果你把自己的网站提交到Google网站管理员工具中,那么在网站管理员工具中Google会记录下索引你的网站过程中所遇到的死链。

2)Xune 是一个免费的桌面软件,会检测您整个网站的所有链接,并告诉您哪些是好的、哪些是坏掉的、哪些是超时的以及哪些是暂时无法连接上的,然后还会生成一份详细的报告给您。

3)Linkpatch.com  您注册了之后把一段代码复制粘贴到您的404 模板(404.php),然后您的博客一旦出现404 页面,Linkpatch 就会把这个消息通过邮件发送给您,算是错误报告吧。

4)Broken Link Checker(http://wordpress.org/extend/plugins/broken-link-checker/)   Broken Link Checker 是一个WordPress 插件,也是我目前最喜欢的死链接检测软件。它的优势在于不仅可以检测所有文章的死链接和重置链接,而且还可以直接在 WordPress 后台对这些链接进行修改。不过有一个不足的地方是,它只在您的WordPress 后台开着的时候才会检测,大懒虫一个。

解决方法

找到死链之后,就是去修改了,如果死链很多,那将是一件很头大的事情。所以最关键的还是要学会预防死链的产生,预防死链产生主要从以下几方面入手。

1)网站结构要事先确定好,不要等上线之后做出太大的调整,这样极易产生死链

2)一般情况下不要进行域名的迁移,如果一定要这样做那么注意做好301重定向

3)外联的添加要慎重,尤其是国内的站点,生死瞬息间。

4)定期进行死链检测,检测之后立马进行修正

5)设计一个SEO良好的404页面

6)最好不要使用图床,还是上传到自己的空间最安全

DOCTYPE怎么支持html5

DOCTYPE即DTD,文档类型定义。通常来说他决定了浏览器选用什么样的布局模式来显示网页。选用不同的DOCTYPE通常会对网页的布局和书写规则产生影响。现在比较常用的XHTML 1.0的DOCTYPE主要有三种。

1)过度类型

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

这是一种不是很严格的DOCTYPE,一些不被推荐的标签也可以使用。现在大多数的网页都在使用这种类型。

2)严格类型

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

这种要求比较严格不允许使用表现性的标签,如<hr/>。标签的书写必须符合规定。

3)框架类型

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>

一种支持框架的DOCTYPE。

此外还有支持XHML4.01的DTD和适合手机浏览器的DTD,参见维基百科的DOCTYPE的介绍

那么如何让我们的网站支持仍处于开发阶段的HTML5呢?方法很简单,使用如下的类型,那么我们的网站就可以支持HTML5啦,同时向后兼容。

<!DOCTYPE HTML>

就这么简单网站就可以支持HTML5啦,很简单的书写方式,相对于老式的DOCTYPE,这个更容易记忆。关键是这样的类型我们现在就可以使用,如此短的定义正合Google这种大流量网站的

心意。除了Google以为,现在使用这种类型的网站还有淘宝

实时网页程序简单介绍

实时网页程序

在传统的网页中客户端总是主动的向服务器端索要信息,然后服务器端才把客户端请求的信息发送回来。在这种模式中服务器端是被动的,服务器只能去响应客户端的请求,即只有客户端发起请求,服务器才会作出响应;客户端如果没有任何请求,无论服务器端发生了什么都不会去通知客户端。

而实时网页程序要实现的则是服务器端的主动推送能力,即服务端可以随时向客户端推送必要的信息,这样就使得服务器端具有了一定的主动性。这种特性对一些应用和程序是必要的,比如twitter这种网络引用,每时每刻都有新的信息产生,如果服务器端不能主动地推送信息给客户端,那么用户就要不断地去刷新网页(为了获取信息用户付出了很多的时间),这无疑增加了用户使用twitter的成本,降低了twitter本身的价值。而如果服务端具有一定的推送能力,那么用户就可以把用在刷新上的时间剩下来,去做其他的更有意义的事情,比如去偷个菜什么的。还有一个重要的应用就是网页游戏,这里的网页游戏指的是那些具有即时交互性的游戏(像传统的桌面网游一样),在这种情境下,服务器端的推送能力就变得尤为重要。此外实时网页程序也是互联网发展的重要方向,如果web能够友好的实现服务器端的推送,那么网页应用打败桌面软件的一天指日可待,chrome os将会大放光芒。

基于以上几点,我对实时网页程序产生的兴趣。

HTML5新特性学习-自定义数据

此文章属翻译作品,如果看的不通顺或者看不懂,请翻看原文!

原文链接HTML 5 data- Attributes

自定义数据属性是在HTML5中新加入的一个特性。对于规范来说,好像有点怪异–但他的确提供了一些便利。

简单来说,自定义数据属性规范规定任何以data-开头的属性都将被视为私有数据的存储区域(”私有”在这里的意思是最终用户无法看到他-他不会影响页面的布局和表现)

这允许你书写有效的HTML标记的同时,嵌入数据到你的网页中去。简单示例如下:

<li class=”user”   data-name=”John Resig”  data-city=”Bostondata-lang=”js”  data-food=”Bacon>

<b>John says:</b> <span>Hello, how are you?</span>

</li>

上面的代码完全符合HTML5的规范。对所有的javascript开发者来说这是一个很受欢迎的新特性。一直以来我们都在需求一种最好的用有效地方式添加元数据到htmL元素的方法,框架用各种不同的方式去解决这一问题。一下是两种解决方案:

1)使用HTML,但自定义DTD。

2)使用XHTML,与特定的命名空间。

The addition of this prefix completely routes around both issues (including any extra markup for validation or needing to be valid XHTML) with this effective addition.

On top of this a simple JavaScript API is presented to access these attribute values (in addition to the normal get/setAttribute):

var user = document.getElementsByTagName(“li”)[0];
var pos = 0, span = user.getElementsByTagName(“span”)[0];

var phrases = [
{name: “city“, prefix: “I am from},
{name: “food“, prefix: “I like to eat},
{name: “lang“, prefix: “I like to program in}
];

user.addEventListener( “click”, function(){
var phrase = phrases[ pos++ ];
// Use the .dataset property
span.innerHTML = phrase.prefix + user.dataset[ phrase.name ];
}, false);

这种.dataset用法看起来很像.attributes的用法(但是他只是作为key-value 对),由于现在还没浏览器实现这一DOM特性,对他的需求并不是很大-因此上面的代码可以被替代为:

span.innerHTML = phrase.prefix + user.getAttribute(“data-” + phrase.name );

我认为最令人兴奋的是我们可以在所有的浏览器去实现这些特性之前就可以使用它们。现在在你的网页上使用这种特性,那你可以很明确的知道他们在未来可以继续有效。当HTML验证完全整合到W3C的认证当中的时候,你的网站讲兼容他们(当然,假设你已经通过HTML5的验证并且正在使用HTML5的Doctype)

twitter中文版-twitter本地化现状

twitter在美国和其他的国家发展的是如日中天,而twitter本地化即twitter中文克隆版的发展却是沟沟坎坎。

1)twitter本地化一代

2006年5月,twitter上线。那时候还不叫twitter叫Twttr,后来在2006年秋季的时候,Twttr正式更名为Twitter。后来经过几个引爆性的事件使得twitter在山姆大叔那里声明鹊起,后来陆陆续续有中文版的twitter诞生了,其中的代表者有饭否、嘀咕、腾讯滔滔等等还有一些没有诞生就夭折的版本。饭否和嘀咕是两个做的影响比较大的,后来他们都不能访问了。

2)twitter本地化二代

09年下半年逐渐又兴起了一个twitter模仿的高潮,新浪微博算是吆喝的最大的一个,而且现在已经有了一定的用户群体,新浪的广告也是twitter中文版中打的最多的一个,在hao123,google的twitter关键词搜索页面都很容易看到新浪微薄的广告。虽然很能炒,但我没看出什么使我提起兴趣的地方,所以虽然注册了一个tomheng的帐号但却没怎么用过。

twitter是一直被模仿但却从未被超越,twitter中文版虽然也出了不少,但却都没有真正的做到家,模仿应该只去模仿别人的形式而应该去看看twitter创意的思想和出发点,为什么他们能做出如此优秀的互联网应用,而我们不能。一味的模仿将使我们越来越找不到自己的方向,总是被牵这鼻子走。希望国内的模仿者能有所创新,能过提供给我们更好的应用服务。

SAE又一个互联网开放平台

近期互联网开放平台又发生了一件不大不小的事情,新浪开始对SAE(sina app engine)开放平台开始进行内侧,SAE是新浪推出的新的分布式应用环境。Sina App Engine是基于PHP的Web应用开发和运行平台.致力于为广大SAE开发者提供简单高效的分布式应用环境 。现在SAE还只是Alpha版,测试也只是内部测试,公司以外的人很难得到邀请码。官方博客消息:SAE可能在明年1月份发布正式版。
SAE开放平台支持的服务:
PHP 5.3.0
Mysql 5.0.86
Memcache
Fetch URL
Cron Jobs
图片处理
Php和mysql自然不用说,后面的四项服务还是挺诱人的。Memcache做缓存,Cron Jobs可以做事务程序。
SAE开放平台的出现无论是模仿秀(和gae的名字都很想)还是概念炒作,这都不重要,重要的是他发出了一个强烈的信号,大家都认识到了开放平台和云是趋势。

关于SAE开放平台我最关心的有两个问题:备案和收费。备案问题如果不解决,SAE很难取得大的成就,至少很难获得广泛的用户群。免费是不可能的,收费就要有个标准,如何收费,价格如何,这些都是关怀开发者(tomheng 也是个开发者)利益的问题。