從一段代碼看Google的遠大野心

最近看健碩的博客,知道他作爲一個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);

   })()

發佈了28 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章