AJAX案例研究之 google reader

來源:互聯網
上載者:User
ajax|google

google reader 是google的另一個AJAX應用,以前前一直誤以為是個瀏覽器外掛程式,因此沒有留意。昨天在網友Jared提醒下去開通了一個才見識了一吧。匆匆crack了一下代碼,因為剛剛開通上面也沒有多少資料,隨便晃兩眼吧。

首先登入readr,把reader頁面另存到本地,得到一個主檔案(htm),一個指令碼,和一個css樣式表。

把html檔案中的這行去掉:
<!-- saved from url=(0041)http://www.google.com/reader/things/intro -->


這樣xmlhttp就可以無限制的訪問網路資源了。

reader引用了一個莫名其妙的js檔案,用數字做檔案名稱,不知道名字是不是經常變化的,我昨天下載的時候的名字是: http://www.google.com/reader/ui/874310214-main.js

檢查一下資料發送和接收的地方,找到了一個關鍵點是指令碼的第479行:

;D.prototype.Hb=function(a){if(this.overrideCache&&a.indexOf("?")==-1){var b=(new Date()).getTime();a=a+"?"+b}this.uri=a}


uri這樣的標識符都保留下來了,充分說明google沒有刻意的混淆過代碼。我們就從這裡入手:

;D.prototype.Hb=function(a){
 if(this.overrideCache&&a.indexOf("?")==-1){
   var b=(new Date()).getTime();a=a+"?"+b
  }
  this.uri="http://www.google.com"+a
  window.open(this.uri);
  }


  this.uri="http://www.google.com"+a 是為了讓xmlhttp能夠正確的找到網站。
  window.open(this.uri);是為了同時把xmlhttp試圖訪問的內容用新視窗開啟來看看。

carck後的指令碼在這裡 http://www.blogjava.net/Files/emu/874310214-main.rar 。首頁面上有我的個人資訊,就不上傳完整的本地可運行版本了。

儲存指令碼後重新開啟htm頁面,可以看到,在頁面顯示出來的過程中載入了兩個動態xml資料來源。

http://www.google.com/reader/atom/user/*********************/state/com.google/reading-list?n=20

http://www.google.com/reader/atom/user/********************%2Fpref%2Fcom.google%2Fprefs?complete=true

中間的星號部分是我的使用者編號,就不貼出來了。大家自己實驗的時候可以看到自己的。

這兩個資料原在瀏覽器視窗中開啟的時候非常出乎意料的,居然返回的是兩個xml檔案!之前我多次在說google推行AJAH,看來怪錯好人了,google也用正宗的AJAX的。

- <feed xmlns=" http://www.w3.org/2005/Atom">   <title> user/***************/state/com.google/reading-list</title>   <id> tag:google.com,2005:reader/user/***************//state/com.google/reading-list</id>   <updated> 2005-12-02T04:03:50Z</updated> </feed>

-
<feed xmlns=" http://www.w3.org/2005/Atom">   <title> user/***************/pref/com.google/prefs</title>   <id> tag:google.com,2005:reader/user/***************/pref/com.google/prefs</id>   <updated> 2005-12-02T04:03:50Z</updated> </feed>

我剛剛開通reader,裡面都還什麼資料都沒有呢。你看到什麼了呢?



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.