Dream Maker 老漂 不要有和人斗的心,你要赢的是你自己!

JavaScript对SEO的影响和处理办法

JavaScript在SEO中是一个很头疼的问题,一方面我们在网页制作中需要使用JavaScript来实现绚丽的特效,而一方面JavaScript又会对搜索引擎的抓取分析造成不好的影响。Google的官方文档中很清楚的说明,如果在html中过多的使用 JavaScript、Cookie、会话 ID、框架、DHTML 或 Flash 等复杂功能会使搜索引擎抓取工具在抓取网站时可能会遇到问题。

  不仅是Google,yahoo在官方文档中也有类似的强调:
...

Tags: javascript seo

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 86

注意! JavaScript中的"陷阱"

以下是JavaScript容易犯错的几个"陷阱".由本人google+体验+搜集而来.虽然不是什么很高深的技术问题,但注意一下,会使您的编程轻松些.

1. 最后一个逗号

如这段代码,注意最后一个逗号,按语言学角度来说应该是不错的(python的类似数据类型辞典dictionary就允许如此)。IE会报语法错误,但语义不详,你只能用人眼从几千行代码中扫描。

 

Js代码 "复制代码"
  1. <script>   
  2.   var theObj = {   
  3.         city : "ShenZhen",   
  4.         state : "ok",   
  5.   }   
  6. </script>   
<script>
  var theObj = {
        city : "ShenZhen",
        state : "ok",
  }
</script> 




2. this的引用会改变

如这段代码:

 

Js代码 "复制代码"
  1. <input type="button" value="Gotcha!" id="MyButton" >   
  2. <script>   
  3. var MyObject = function () {   
  4.     this.alertMessage = "Javascript rules";   
  5.     this.ClickHandler = function() {   
  6.         alert(this.alertMessage );  //行1   
  7.   }   
  8. }();   
  9. document.getElementById("theText").onclick =  MyObject.ClickHandler;   
  10. </script>  
<input type="button" value="Gotcha!" id="MyButton" >
<script>
var MyObject = function () {
    this.alertMessage = "Javascript rules";
    this.ClickHandler = function() {
        alert(this.alertMessage );  //行1
  }
}();
document.getElementById("theText").onclick =  MyObject.ClickHandler;
</script>



并不如你所愿,答案并不是”JavaScript rules”。在执行MyObject.ClickHandler时,在行1中,this的引用实际上指向的是document.getElementById("theText")的引用。可以这么解决:
 

Js代码 "复制代码"
  1. <input type="button" value="Gotcha!" id="theText" >   
  2. <script>   
  3. var MyObject = function () {   
  4.     var self = this;   
  5.     this.alertMessage = “Javascript rules”;   
  6.     this.OnClick = function() {   
  7.         alert(self.value);   
  8.     }   
  9. }();   
  10. document.getElementById(”theText”).onclick =  MyObject.OnClick   
  11. </script>  
<input type="button" value="Gotcha!" id="theText" >
<script>
var MyObject = function () {
    var self = this;
    this.alertMessage = “Javascript rules”;
    this.OnClick = function() {
        alert(self.value);
    }
}();
document.getElementById(”theText”).onclick =  MyObject.OnClick
</script>


实质上,这就是JavaScript作用域的问题。如果你看过,你会发现解决方案不止一种。

3. 标识盗贼

在JavaScript中不要直接使用跟HTML的id一样的变量名。如下代码:

 

Js代码 "复制代码"
  1. <input type="button" id="TheButton">   
  2. <script>   
  3.     TheButton = document.getElementById("TheButton");   
  4. </script>  
<input type="button" id="TheButton">
<script>
    TheButton = document.getElementById("TheButton");
</script>

JavaScript String数据类型

  • 摘要:《Javascript学习指南(第2版)》第2章介绍JavaScript的基本数据类型,包括字符串、数字和布尔值,以及这些数据类型的内建函数。还将介绍JavaScript中两个特殊的数据类型null和undefined(未定义)。最后还将说明字符串的转义以及Unicode编码。此外还将深入介绍变量,以及如何让变量名称有效且有意义。本节说的是String数据类型。

2.3  String数据类型

由于JavaScript是一门支持松散类型的编程语言,字符串变量或者数字型、布尔型变量在声明时并没有什么差别,只有把文本赋给String(字符串)型变量,并且对变量进行初始化之后才定义了变量的上下文。

字符串文本是由单引号或双引号所引用的一系列字符,例如:

  1. var strString = "This is a string";  
  2. var anotherString= 'But this is also a string'; 

JavaScript并未限定必须用单引号或双引号来表示字符串,唯一的规则是前后的符号必须匹配。字符串中可以包括各式各样的字符,例如:

  1. var thirdString = "This is 1 string.";  
  2. var stringFour = "This is--another string.";  
  3. var stringAsNumber = "543"; 

Google的JavaScript开发工具Closure

今天Google发布了其内部使用的JavaScript开发工具Closure,并贡献给开源社区,在拍手称快的同时,我们来看看它究竟有些什么内涵。

Closure 编译器

Closure 编译器是一个JavaScript优化器,为Web应用程序生成紧凑,高性能的JavaScript代码,它移除了不必要的代码,并经过重写和优化,保持娇小的身材,以便在浏览器的JavaScript引擎上运行得更快,这个编译器也会检查语法,变量引用和类型,并对常见的JavaScript陷阱发出警告,这些功能有助于你写出bug更少,更易于维护的程序。你也可以使用Closure检查器,它是一个Firebug扩展,主要用于调试那些难以阅读的代码。

因为JavaScript开发人员是一个多样化的群体,Google还设计了许多方法来运行Closure 编译器,同时内置了一个命令行工具,如果你还想偷懒,Google也提供了一个在线页面,你可以将你的JavaScript代码放入该网页中的文本输入框中,让它帮你编译,也可以调用RESTful API来完成编译。此外,Google提供了著名的Firefox 扩展Page Speed,让开发人员可以在Firefox 中方便地查看网页的性能。

原来JScript中的关键字'var'还是有文章的

都不记得是什么时候看的JScript的语法教程了,里面说在声明变量时忽略var关键字是完全合法的。当时也因为觉得JavaScript是loosely-typed的语言,所以var可能真的就是个摆设。但是事实常常又证明想当然的结果是不可靠的""

    看看下面这几个例子的结果就知道问题了:

    No.1

 

 

""""<script language="javascript">""
""
var var00 = 0;
""document.write(var00 
+ '<br>');
""
""
var var01 = 1;
""
function foo()
""""
""{
""    document.write(var01); 
""    
var var01 = 1;
""}

""foo();
""
</script>

 

Tags: 脚本 javascript

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 98

Javascript条件语句

在一般情况下,程序语句的执行是按照其书写顺序来执行的。前面的代码先执行,后面的代码后执行。但是这种简单的自上而下的单向流程只适于用一些很简单的程序。大多数情况下,需要根据逻辑判断来决定程序代码执行的优先顺序。要改变程序代码执行的先后顺序,任何编程语言都需要用到条件语句和循环语句,Javascript也不例外。

这一节我们主要介绍Javascript条件语句。

Javascript条件语句有以下几种:

javascript

在这里只作简单介绍,在以后的例子中结程序再作具体解释其作用。
  1、运算符
  运算符就是完成操和的一系列符号,它有七类:
  赋值运算符、算术运算符、比较运算符、逻辑运算符、条件运算、位操作运算符和字符串运算符。
  2、表达式

Tags: asp javascript

发布: 老漂 分类: 网站|站长 评论: 5 浏览: 452