Facebook 的程式在寫時, 會發現好像有點怪, 好像跟一般寫的網頁程式不太一樣, 主要原因是 Facebook 需要將頁面產生完後的 <fb:xxx> 再做一次處理.
因為 <fb:xxx> 需要 Facebook 另外處理, 所以 若是有頁面參數帶入判斷的, 在此處要特別注意, 頁面若有使用到 <fb:xxx> 的話, 會走下述流程.
註: 下述流程是概略狀況, 依照使用 Library 的方式, 流程會有增減.(此流程是抓 "加入粉絲團" 那段 XFBML 的流程)
Facebook App 於外部(XFBML) 的頁面產生流程
頁面網址: http://example.com/fans.php
- http://example.com/fans.php # 先 load fans.php
- http://www.facebook.com/extern/login_status.php # 取得 login 狀態
- http://www.connect.facebook.com/widgets/fan.php # 取得 widget (<fb:xxx>)
- http://example.com/fans.php?fbc_channel=xxx # 真正將頁面 load 出來(將 <fb:xxx> 換成實際 facebook 內容)
因此, 頁面 並不是一次 load 出來, 而是會 load 兩次. (若有 javascript alert(), 會跳兩次)