2007年11月11日 星期日

My Dojo 1.0 XDomian and OpenSocial 跨域議題

這次要做的練習是 Dojo 1.0 XDomain,這種方式可以讓客戶端載入應用網站上的 dojo 以及 app.js,而不使用 OpenSocial 容器網站提供的 dojo。

一開始做了 OpenSocial 練習 My OpenSocial Gold App 一友一兩金,當時是採用 dojo 0.9 的XDomain Build 模式,這種跨網站網域的作法有其特別好處,一是採用端程式碼非常少,二是不需要上傳一堆 dojo 的程式碼,很適合拿來給急著要嘗鮮的人用,可以快速上手練習一番。

不知道你是否注意到,這類作法會讓你的 App 或是你的容器相依在 Dojo and AOL 這個 XDomain 服務之下,對於不想依賴在別的網站服務的人來說,這樣並不適合,剛好Dojo 1.0 出來,,於是稍微練了三年等待結束,Dojo 1.0 與 OpenSocial 練習曲一下,不過那是改個 1.0 版沾沾醬油而已,這次想要沾多一點 dojo,便想要改為 Cross Domain (XDomain) Builds 模式試試,一來是想看看語法是否有啥差異。

先談談為何要弄個 Cross Domain (XDomain) Builds ,之前可以先看Using dojo for orkut.com OpenSocial has loading module issues 這個疑問,跨 domain 資源下載的問題會是需要將 js 放在客戶端或是容器端執行需要面對的議題,做個 My OpenSocial Gold App 一友一兩金 之類的 App,因為它完全將東西放在容器端,簡單好處理,慢慢地你打算移出去,往往會需要建制這種資源處理模式。

這裡沒有太多說明,因為打字很累,講一萬行也不如你自己玩一下,體驗一次。

你需要的是有 src 的 dojo 檔,請在release-1.0.0下載。解開後到 util/buildscripts/profiles 可以看到五個預設的設定檔,你可以直接拿來練習看看。
  1. base.profile.js
  2. layers.profile.js
  3. cometd.profile.js
  4. offline.profile.js
  5. standard.profile.js
接下來 cd util/buildscripts 後,下指令建制 base 就好,其他功能沒用到先不要建。這樣大小約 3MB。

build profile=base loader=xdomain xdDojoPath=http://linkxd.com/gold action=release

接下來到 src/release 去找它做出來的東西上傳到 gold/dojo 目錄就好。
src="http://linkxd.com/gold/dojo/dojo.xd.js"
接下來就是改個容器檔,這裡沿用 B 容器做出 Container B2,如果 OK 就代表你的 xdomain 已經建制完成。



需要程式碼的朋友可以到樂連LinkXD Download頁面下載參考。

接下來如果要進一步練習,可以考慮將 app.js 變成一個模組,可參考 Creating Your Own Modules | The Dojo Toolkit,建議採用放在 dojo 目錄旁邊的作法。寫完模組後寫個 linkxd.profile.js 檔來將 mygold/app.js 納入。

build profile=linkxd loader=xdomain xdDojoPath=http://linkxd.com/gold action=release

去部落格曬曬陽光
LinkXD

沒有留言: