现在的位置: 首页 > 综合 > 正文

从一段代码看Google的远大野心

2013年12月02日 ⁄ 综合 ⁄ 共 4488字 ⁄ 字号 评论关闭

最近看健硕的博客,知道他作为一个CEO最近在研究Java Script,非常佩服.

互联网也许正需要这种技术型的CEO.

微软的世界和Google的世界 

一个微软的世界的基石应该是PE(Portal Exexcutable)的文件格式(也就是.EXE, .DLL所使用的格式),这些格式让DOS操作系统可以"load"到内存里面执行。
    那么在Google的世界里面先出现了一个loader(就好比DOS的loader),然后作为load的基础函数出现了这么一个google_exportSymbols,这是巧合呢,还是意味着什么呢?

也许,
  一个属于互联网的时代,
  
崭新的时代,
  
就要来临了.

健硕研究的这段Java Script的URL很酷:

http://www.google.com/jsapi

这是分析最近的Google的所有代码的起点。在最近的Google AJAX Feed API文档里面提到,"Google正在向一个新的编程模式转移",说的就是这一行代码。比如AJAX Feed API的开始调用就用如下语法:

<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_KEY_HERE"></script>

<script type="text/javascript">

google.load("feeds", "1");

</script>

其中调用的就是这段神秘的JavaScript.

代码全文:

 

if (!google) {

   var google = {};

}

if (!google.loader) {

   google.loader = {};

   google.loader.ServiceBase = "http://www.google.com/uds";

   google.loader.ApiKey = "internal";

   google.loader.KeyVerified = true;

   google.loader.LoadFailure = false;

   google.loader.AdditionalParams = "";

   (function() {

      Function.prototype.__google_inherits=function(c){

         var a=function(){};

         a.prototype=c.prototype;

         this.prototype=new a;

         this.prototype.__google_super=function(b,d,e,f){

            var n=Array.prototype.h.apply(arguments,[1,arguments.length]);

            return b.apply(this,n)

         }

      };

      var h=null;

      var l=false;

      function i(c){this.a=c}

      i.prototype.c=function(c,a){

         var b="";

         if(a!=undefined){

            if(a["locale"]!=undefined){

               b+="&hl="+encodeURIComponent(a["locale"])

            }

            if(a["nocss"]!=undefined){

               b+="&output="+encodeURIComponent("nocss="+a["nocss"])

            }

            if(a["other_params"]!=undefined){

               b+="&"+a["other_params"]

            }

         }

         if(h!=null&&!l){

            b+="&key="+encodeURIComponent(h);

            l=true

         }

         return google.loader.ServiceBase+"/?file="+this.a+"&v="+c+google.loader.AdditionalParams+b

      };

      function k(c,a,b,d,e,f){

         this.a=c;

         this.g=a;

         this.f=b;

         this.d=d;

         this.e=e;

         this.b=f

      }

      k.__google_inherits(i);

      k.prototype.c=function(c,a){

         var b="";

         if(this.d!=undefined){

            b+="&"+this.d+"="+encodeURIComponent(h?h:google.loader.ApiKey)

         }

         if(this.e!=undefined){

            b+="&"+this.e+"="+encodeURIComponent(c)

         }

         if(a!=undefined&&this.b!=undefined){

            for(var d in a){

               if(this.b[":"+d]!=undefined){

                  b+="&"+this.b[":"+d]+"="+encodeURIComponent(a[d])

               }

               else

                  if(d=="other_params"){

                     b+="&"+a[d]

                  }

               }

            }

            google[this.a]={};

            if(!this.f&&b!=""){

               b[0]="?"

            }

            return this.g+b

         };

         function o(c,a,b){

            var d=j[":"+c];

            if(!d){

               var e=new Error("Module: '"+c+"' not found!");

               e.toString=function(){

                  return this.message

               };

            throw e;

         }

         else{

            m("script",d.c(a,b))

         }

      }

      function q(c){

         var a=window;

         if(a.addEventListener){

            a.addEventListener("load",c,false)

         }

         else if(a.attachEvent){

            a.attachEvent("onload",c)

         }

         else{

            a["onload"]=c

         }

      }

      function p(c){

         var a=window.location.href;

         var b;

         var d=a.length;

         for(var e in c){

            var f=a.indexOf(e);

            if(f!=-1&&f
               b=e;

               d=f

            }

         }

         h=b?c[b]:null

      }   

      function m(c,a){

         if(c=="script"){

            document.write('<script src="'+a+'" type="text/javascript"><//script>')

         }else if(c=="css"){

            document.write('<link href="'+a+'" type="text/css" rel="stylesheet"></link>')

         }

      }

     function g(c,a)

         {

              var b=c.split(//./);

              var d=window;

              for(var e=0;e<b.length-1;e++)

             {d=d[b[e]]}d[b[b.length-1]]=a}

             d[b[b.length-1]]=a

      }

      var j={};

      j[":search"]=new i("search");

      j[":feeds"]=new i("feeds");

      j[":maps"]=new k("maps","http://maps.google.com/maps?file=googleapi",true,"key","v",{":locale":"hl"});

      g("google.load",o);

      g("google.setOnLoadCallback",q);

      g("google.loader.writeLoadTag",m);

      g("google.loader.setApiKeyLookupMap",p);

      g("google_exportSymbol",g);

   })()

抱歉!评论已关闭.