利用Meta标签的X-UA-Compatible来兼容IE8

  前不久,我在一网页源代码中发现一以前未见过的标签:
[code][/code]
  那么这个标签是什么意思呢?我们先来看下msdn上的说明:
  In IE8 Beta 1, that option is the “IE=7” X-UA-Compatible tag, which instructs IE8 to display content in IE7 Standards mode. However, the scenario this doesn’t address is when IE=7 is applied as an HTTP header to a site that contains Quirks mode pages. The IE=7 HTTP header will force all pages – both Quirks and Standards – to display in IE7 Standards mode. Developers using this header while updating their sites would then have to add the “IE=5” tag to each page they want to keep in Quirks mode. This logic is fine for many websites. However, if a site has lots of Quirks mode pages, or for the case where pages with frames host a mix of Strict and Quirks mode content – as brought to light by IE8 Beta 1 user feedback – the compatibility opt-out adds a bit more work than we intended. ..
  原来X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与content=”IE=7″在无论页面是否包含指令,都像是使用了 Windows Internet Explorer 7的标准模式。而content=”IE=EmulateIE7″模式遵循指令。对于多数网站来说,它是首选的兼容性模式。

  对于多数网站来说,它是首选的兼容性模式。

  大多数站点是在IE8正式版发布之前建立的,之前我们没有把办法考虑到IE8的兼容性,所以为了避免制作出的页面在IE8下面出现错误,建议直接将IE8使用IE7进行渲染。也就是直接在页面的header的meta标签中加入如下代码:

[code][/code]

  这样我们才能使得页面在IE8里面表现正常!

网站SEO标题(Title)的书写规范

  网站优化一个最重要的因素就是网站的标题标签(Title Tag),如何取一个好的网站标题?用一个精简的对用户有吸引力而且表达了网站主题的标题再恰当不过。这样就告诉搜索引擎网站主要是做这个的,网站内容也是围绕这个标题展开的。

  下面谈谈关于网站标题几个方面问题:
1、网站名避免堆砌关键词,
2、网站名称改动带来的伤害
3、网站名称对营销的重要性–品牌效应
4、公司网站名称设置
5、用什么符号分隔关键词。

  1、关键词堆积标题
  网站标题应该对用户有足够的吸引力。用户通过搜索引擎搜索时,在判断应该点击哪一个网站,很大程度上就取决于你的标题写的怎么样。
  什么都有就是没有重点,网页标题好像一个人的头衔一样,如果你看到一张名片上印了十几个头衔,你会很鄙视这个人,而对于这样的网页,搜索引擎也不喜欢。所以,你的一个网页只要用一个主要的关键词写入标题中,如果一个意思有多个表达,可以适当列举几个。比如“网站运营_网站运营方案下载”这样还是可以的。搜索引擎也是根据网站标题和网站内容判定你的网站主要写的是的什么,是关于什么性质的,判定你在哪个行业的权重。
  网站标题关键字不宜过多,做两三个关键字就可以了,通过搜索引擎的“分词”技术,又可以起到多个关键字的作用。如换装小游戏|免费小游戏下载,通过分词,在搜索换装小游戏小游戏下载 换装下载 小游戏下载免费小游戏下载等几个关键词。做好关键词优化,都会有好的排名。

  2、网站名称改动带来的伤害
  在互联网混久了,经常听到一些站长报怨,因为改了标题(关键字),导致网站排名下降。
  百度对标题改动的站非常敏感,轻者降权,重者K站。分析原因,百度在收录一个站的时候,肯定会对这个站进行一个评估,如这个站是干什么的,它的主要关键词是什么,他的域名是什么,他的链接类别什么,他的服务器IP是什么,他的服务内容是什么,更新频率是多久,权重是多高等等。百度会把这些信息记录在一个主表中,这个表中的内容对整个网站起着至关重要的作用。也是百度评定某个站的主要依据。一般这个主表中的内容是不会变化的。即使变化,也要等很久很久,比如大更新的时候,它会对你这个站的评估,权重作一个更新,或升或降。
  当我们一旦人为改动标题(首页标题,百度警惕性最高)时,百度就会认为你这个站的内容发生了重大变化。会对你的站的排名起用临时的排名,排名下降在所难免,但也不会下降得太远。这一点是很好理解的,比如说你是做小说的站,你突然把你的标题改成SEO站点,人家一搜索,用户体验好差嘛。所以,百度的这种作法也是能够理解的。据此分析,这样的情况,等百度重新更新,重新认定你这个站后,排名会恢复,但由于百度认为你经常改动,整个站处于不稳定状态,就会把站K掉,所以百度K站也是有一定道理,有原则的,不是无缘无故的。
  还有一种情况就是站长在做站的时候,如果复制模仿知名品牌,或模仿已经申请商标的网站名,那可要小心,说不定有一天你的站做大了,就会因为版权问题找上门来,所以在此奉劝广大站长,以后做站名的时候别去做那种有争异的站名。等自己出名后,改动就很麻烦,少有改动收录或者排名就会消失。

  3、网站名称对营销的重要性–品牌效应
  站长们给网站起名时都喜欢用行业性、地域性的的词来做为网站的名称,而没有加入自己特有的词来做为名称,这就会导致大量同名网站产生。我们以“厦门二手网”为例来看一下,在百度搜索“厦门二手网”,排名前十几乎都叫“厦门二手网”!!假如你是其中一个网站的站长,告诉客户你的网站是“厦门二手网”,客户在搜索引擎上搜时,面对如此多的“厦门二手网”客户该如何选择?客户又会做何感想?双胞胎就够难认的了,更别说一页就有八个同名的网站了。如果是阳光二手网或鲤鱼二手网就不会存在这样的问题,因为他们有自己的品牌!
  我们经营网站实际就是在经营我们的品牌,不要让我们辛辛苦苦经营的品牌和其他人“共享”,也不要因为网站名称的雷同要让客户记住那长长的域名。

  4、公司网站名称设置
  在浏览一个网页时,通过浏览器顶端的蓝色显示条出现的信息就是“网页标题”。在网页HTML代码中,网页标题位于标签之间。
  网页标题是对一个网页的高度概括,一般来说,网站首页的标题就是网站的正式名称,而网站中文章内容页面的标题就是文章的题目,栏目首页的标题通常是栏目名称。当然这种一般原则并不是固定不变的,在实际工作中可能会有一定的变化,但无论如何变化,总体上仍然会遵照这种规律。
例如,现在会看到很多网站的首页标题较长,除了网站名称(公司名称)之外,还有网站相关业务之类的关键词,这主要是为了在搜索引擎检索结果中获得排名优势而考虑的,也属于正常的搜索引擎优化方法。因为一般的公司名称(或者品牌名称)中可能不包含核心业务的关键词,这样当用户通过核心业务来检索时,如果网站标题中没有这样的关键词,在搜索结果排名中将处于不利地位。

一般网站标题可以这样写
1、核心产品名称_网站名称。
2、产品名称_产品频道名_网站名称。
还有一些企业网站、政府类网站标题中只有一个标题就不讨论了。

  5、分隔关键词的符号
  在上面的示例中,你应该可以看出我选择了用_来分隔关键词,其实这并不是唯一的用法,比如-和|等都可以成为分隔符号。没有来自搜索引擎官方的标准说那个符号更好,我只是按照搜索引擎自己的用法和一些大网站的用法来学习。中文网站我会用_,因为你看百度自己,看新浪网,都是这么用的。而英文站用- 吧,因为Google自己和Yahoo都是这么用。
  标题设置好做seo的前提,首先是选出你自己认为和你网站相关的关键词,才能继续你下一步的工作。

简单实用的SEO小技巧

  没有人不喜欢用点[b]小技巧[/b]吧?既不用长篇大论的看方法,又节约了时间。以下十点[b]SEO小技巧[/b]很好用,不防试试吧!
  1、及时更新。信息要及时更新,新事物总会逐渐取代旧事物,没有人喜欢过时的东西,网站也是如此。哪怕只更新一个图片也好。新鲜内容能够帮助您改善排名。要定期添加新的,有用的内容到您的网页。新鲜内容的增加会吸引搜索引擎的注意。
  2、要做有质量的链接。数量不一定要多,但要注重质量。一个单一的,良好的,权威的链接,要胜过几十个劣质的链接。如果没有合乎逻辑的理由,有不好的网站链接了你,这种链接也别要;同时也不要给垃圾站做链接。
  3、[b]SEO[/b]不是一次性工作。搜索引擎的每天都在不断更新变化,要每天坚持做搜索引擎优化。
  4、每个页面重点关注一个关键词组。最好不要尝试为页面优化多个关键词;做多了反而达不到预期的效果。
  5、关注搜索词,不只是单个关键字,放置你的地理位置在文本里如:“广西SEO培训”,而不是“SEO培训”,会帮助你获得网民对周边区域的搜索。
  6、请务必使用关键词链接到您的网站。换而言之,如果您的链接目标是“蓝色小工具” ,那么链接文字就写 “蓝色小工具”而不是“单击此处”;
  7、如果你一定要让主页醒目,整个使用Flash或一个大图片的话,请同时放置文本、和导航链接。
  8、当考虑一个购买或交换的链接时,请检查链接页面在google里的缓存的日期。搜索“cache:URL” ,用实际网址替换URL。较新的缓存日期比较好。如果网页不存在或缓存日期距离现在有一个月多了,该网页没什么价值。
  9、迎合有影响力博客和权威网站的人可能会链接到你,以及你的图片,视频,播客等,或要求转载您的内容,以提升流量和点击率,达到宣传的效果,提高网站知名度。
  10、如果你必须使用Java script的下拉菜单、图片地图、或者图片链接,那么你一定要放置它们的文本链接在页面的某些地方,以便于搜索引擎的蜘蛛抓取。

让所有IE支持HTML5的解决方案

  自从HTML5能为我们的新网页带来更高效洁净的代码而得到更多的关注,然而唯一能让IE识别那些新元素(如<article>)的途径是使用HTML5 shiv,感谢remy sharp为我们提供了这个迷你脚本来解决IE支持HTML5的问题。

您还可以参考以下HTML5相关教程及资源:
一起感受HTML5和CSS3的能量

使用和下载

  html5.js必须在页面head元素内调用(因为IE必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。)
  作者已经把js文件放在Google code project上并允许大家直接调用,当然,前提是你不在意调用额外的文件。
http://html5shiv.googlecode.com/svn/trunk/html5.js
  你可以使用IE条件注释来调用这个js文件,这样像FireFox等非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。下面这段代码仅会在IE浏览器下运行:

<!–[if IE]>
   <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]–>

当然如果你不喜欢调用外网文件,你也可以下载下来上传到自己的服务器单独调用(作者允许)。

以下是js文件中的代码:

(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i){document.createElement(e[i])}})()

英文原文:JavaScript and the DOM Series: Lesson 1
翻译原文:让所有IE支持HTML5的解决方案(彬Go)

Access数据库引擎版本改变导致的800a0e7d错误

  今日在帮别人改个用ASP写的网站的小问题,期间需要修改数据库表结构。改完后由于页面闲置时间过长,需要重新登录,登录时却提示用户名或密码不正确,很是奇怪,用户名和密码是复制的,怎么会有错呢,反复核对验证,确定用户名和密码没弄错,而且刚才改数据库结果时也没动管理员用户表。
  我想,或许是页面程序问题导致误报,于是去掉了页面中的容错语句(即:on error resume next),这时再登录又有了如下提示:
[color=Blue]ADODB.Recordset 错误 '800a0e7d'
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。[/color]
找到报错的那行,一看是记录集打开语句,我想可能是数据库连接有问题,找到数据据库连接语句,看到连接字符串是这样写的:
[color=Blue]connstr=”DBQ=”+server.mappath(“”&db&””)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”[/color]
这个连接写法太古老了,难道是这个的原因?先改成新版引擎再说,如下:
[color=Blue]connstr=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”+server.mappath(“”&db&””)[/color]
保存后重试登录,成功了。
  这下要找找原因了,为什么之前下切正常呢?对比下两个连接字符串,不同的是数据库引擎写法。而我是在改了数据库结构后才出现错误,由于我用的是Office2003,所以可能改了后保存起来的数据库也就产生了变化,使用老的引擎无法连接了,才导致出现这样的错误。

QQ邮箱提供的免费邮局-腾讯域名邮箱

  今天登录QQ邮箱,收到一QQ邮箱发来的新产品试用邀请信,摘抄如下:

 

亲爱的QQ邮箱用户:

很高兴的通知您,QQ邮箱团队的新产品——域名邮箱开始内测了!
您是QQ邮箱的长期用户,我们诚邀您优先体验! 

什么是域名邮箱?

如果您拥有自己的域名,您可以将它跟QQ邮箱绑定,创建以自己域名为后缀的专属邮箱。
例如:
假如您的域名是www.example.com,您只要通过简单的设置,就能使用@example.com的邮箱。
同时,您还将拥有个性化的邮箱登录页:http://mail.qq.com/domain/example.com

域名邮箱的特色功能:

  1. 不仅可以随意设置自己心仪的帐户名,连邮箱的标志图片都可以自定义了
  2. 您可以建立多个相同后缀的帐号,分别送给同事和朋友们

现在就开始体验吧!

QQ邮箱开发团队

 

  由于我的域名已经有邮局,而另外两个没有绑定网站,所以无法测试,有兴趣的朋友可以试下。

虚拟主机时常出现MAC验证失败错误之解决方法

出现错误:   

“/”应用程序中的服务器错误。

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
   

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

源错误:
     

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL:

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:

  <%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。
        

 

 

解决方法:因为.NET在对客户端数据与服务器间传送过程中,需要对数据进行加密与解密,而加密与解密算法可以在web.config里进行配置,在web.config中,validationKey和decryptionKey的默认值是AutoGenerate,由系统随机生成密钥,如果在本地或者使用的是独立主机通常不会有什么问题,但是使用虚拟主机,一台服务器上有多个虚拟主机存在时就会出现以上问题,MSDN中也特别指出不能在群集中使用 AutoGenerate应该指定固定的密钥值,这就需要在web.config中添加关于machineKey的配置项,并手动设置其中的密钥值,这里请注意,不同加密算法对于密钥的最大字符长度是不同的,在这里能够使用的有AES,DES,3DES,SHA1,MD5,我只知道DES的密钥字符长度为16,3DES长度为48,手动设置时密钥长度必须等于其最大长度,否则会出错!至于密钥的16进制值可以随便输入。

具体操作方法如下:

找到网站运行根目录下的web.config文件,如下图加亮行所示加上相应的项。设置时,请自行修改KEY值,这关系到服务器的加密安全。图片看不清晰请点击图片查看。

代码:<machineKey validation="SHA1" validationKey="78EA3850338FBADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" decryptionKey="5FC88DFC24AE12BC" />
图片点击可在新窗口打开查看

 

文件过多导致QQ无法接收图片

  前两天,QQ突然无法接收别人在消息中发来的截图。正好办办公室里网络有问题,原以为是网络关系。但网络好了后还是一样收不到。
  今天给别人发截图,发送时QQ提示:[color=Blue]您在QQ中的的图片文件过多,为了正常发送和接收图片,您可以手动清理图片文件夹,或者清空图片文件夹[/color]。
  原来如此,马上着手清理。打开图片文件夹(QQ号码命名的文件夹里的image文件夹)一看,惊呆了,经过半年多的使用,里面的文件数目达到了一万五千多个。清理过之后,一切又正常了。

支付宝接口ILLEGAL_SIGN错误

  为了更大的兼容性,我做网站习惯用UTF-8编码,没想到也带来了一些麻烦。
  今天在调试商城的支付宝接口,所有参数都写好了。结果出现:[quote]调试错误,请回到请求来源地,重新发起请求。

错误代码 ILLEGAL_SIGN
说明:如果您不是因为本接口集成调试而看见该错误提醒,请联系本次请求来源网站,本错误属于网站集成接口的错误。[/quote]
  上网搜索,说是编码问题,支付宝的帮助里也这样说,解决办法是加个参数,说明如下:[quote]该错误的引起因素有好几点:
1、传递的参数有空值。在支付宝的支付请求url中,某个参数是空值。这样空值在经过md5签名以后,比对会报错,所以请注意您传递过来的url中无空值。建议检查您购物车的支付宝代码,例如:subject=”shop”而非subject= “”

2、程序中安全校验码填写错误(请务必保存好该码,泄漏出去有可能被人伪造消息)。在您拿到不同测试中都有一个key的参数,该参数代表支付宝的安全校验码。从账户内复制过来的时候,会多余空格,请消息检查。例如某一个用户的key是kXXXXXXXXXXXXXXXXXXXXXXXXXXXati,复制到程序中key=” kXXXXXXXXXXXXXXXXXXXXXXXXXXXati ”多了空格的。

3、中文编码的问题。不同网站采用不同的中文编码。有utf-8.gbk,iso-8859-1等,而程序中md5对中文签名会不一样,造成显示该错误。现asp的程序没有直接utf-8编码的md5。Php和jsp。Net程序都是支持该编码的,您可以通过支付接口的 _input_charset = “utf-8” 参数设置制定的字符集,并且我们返回通知也会使用该字符集,解决乱码的问题。
[/quote]
  然而,还是不管用。
  无奈之中,把从支付宝论坛上下载的接口文档拿来调试。写好参数后,一切正常,但由于原文件里的写法是程序里用Redirect直接跳转至支付宝的付款页面,而不是自己点击链接,为了方便调试,我把跳转改成链接。这时,意外的事情发生了,也出现了那样的错误。于是我想,难道是因为这个原因?把我的程序里也改成直接跳转,也不行,但意外地发现链接中包含有乱码,与生成的链接里的中文不一致,只好把Subject参数里的中文去了,再试,成功了。把直接跳转改回链接,也行了。
  看来,还是中文编码做的怪。不过,为什么加了参数,还不行呢?还哪里出错了?改天有空再好好研究研究?

布局溢出的解决

  要做一个带四个圆角的方形框,很自然地想到先用边框线做好框,然后再放上四个圆角。
  我的做法是头部左右两圆角,中间内容,底部再是两个圆角。至于圆角,我是用背景图片来体现,头部做得很顺利。到了底部,傻眼了,两圆角竟然往两边和下面漂移了。
  相关代码如下:[code]

[/code]
  CSS:[code].cir_top{
height: 13px; background:url(dot_line.gif) right top repeat-x;
}
.cir_top .left {
height: 13px; width:13px; background:#FFFFFF url(cir_top_left3.gif) no-repeat; float:left;
}
.cir_top .right {
height: 13px; width:13px; background:#FFFFFF url(cir_top_right3.gif) no-repeat; float:right;
}
.cir_btm{
height: 15px; background:url(dot_line.gif) 0 11px repeat-x;
}
.cir_btm .left {
height: 13px; width:13px; background:#FFFFFF url(cir_btm_left1.gif) no-repeat; float:left;
}
.cir_btm .right {
height: 13px; width:13px; background:#FFFFFF url(cir_btm_right1.gif) no-repeat; float:right;
}[/code]

  刚开始以为是背景位置不对或者是图片不对,检查了半天,都是好的。于是我给它们加上边框线,发现原来是溢出了。把宽给固定死了,也不行,照样往左飘移。但奇怪的是,我把这个代码整体复制出来,单独做个页面,又是一切正常的。后来,我突发奇想,那我设置下cir_btm的浮动右对齐( float:right;)试试,没想到,好了,这时我又想那我再改成左:float:left;,哈哈,正常了。看来是浮动捣的鬼。至于为什么单独一个页面就行,而放进我这个页面中却会这样(顶部正常,底部不正常),我想可能是与页面中的其它元素的浮动设置有关系。暂时没时间具体研究,如果有高手有独到见解,请指教!