
DOM 和瀏覽器的模式
203
這個
ttt
物件保有一份已填過的格子清單,儲存在
ttt.played
,並會傳送給伺服器,
這樣伺服器就可以回傳一個尚未填過的數值。若是有錯誤發生,伺服器的回應則會類似
這樣:
如你所見,JSONP 裡頭的回呼,必須是一個公開且可以全域存取的函式,倒不一定要是
全域函式,但可以是一個全域物件的方法。而若是沒有錯誤,伺服器回應的方法呼叫會類
似這個樣子:
這裡 3 的意思是伺服器選擇了編號 3 的格子。在這個案例中資料相當簡單,所以我們不需
要用 JSON 格式,一個值就足夠了。
頁框和 Image Beacons
頁框是另一種遠端操作的選擇。你可以用 JavaScript 建立一個
iframe
元素並變更其
src
的 URL。新的 URL 中可以包含資料和函式呼叫,並更新原呼叫者,也就是在
iframe
外
面的父頁面。
而 remote scripting 中最簡單的格式,會出現在當你需要的只是傳送資料給伺服器,而不需
要任何回應的時候。在這種情況,你可以建立一個新的圖片,並將它的
src
指向伺服器端
的 script:
這個模式稱為 image beacon,當你想要傳送資料讓伺服器記錄時很有用,例如,收集訪客
統計數據。因為回覆的 beacon對你來說毫無用處,一種常見但不好的作法是,讓伺服器回
覆一個 1x1 大小的 GIF 圖檔。更好的選擇是,回應「204 沒有內容」的 HTTP 回應。這意
思是送回給客戶端的只有標頭,但沒有內容主體。[19 ...