2009-12-12 93 views
0

我試圖做一個Facebook遊戲,並試圖複製一個共同的功能,我通常在許多其他Facebook遊戲找(我的網站和虛幻的圖像的調用是加載欄)。Facebook的遊戲功能,Optimizin呼叫,並加載欄

我不熟悉的Ajax或JavaScript,請與我裸露。

功能應該做到以下幾點:在按鈕

  1. 用戶點擊

  2. Gif動畫出現(加載條)

  3. 按鈕更新用戶狀態

  4. Gif動畫消失

  5. 的Facebook畫布頁被更新

The code I currently have can be found at Pastebin

我有步驟2麻煩的思維和4

我需要優化步驟5.

要澄清步驟5:發生什麼事我都箱1,它有我的統計信息。和框2有我的觀點。我點擊框1.這應該更新框1 1分,並更新框2;減去一個點。 (點擊框1,同時更新這兩個框)

我已經成功地做到了這一點,但它是相當緩慢。我想知道是否有其他方式可能比我目前所做的更快。

你的意見是極大的讚賞。


Script Updated with Mark-up.

我已經找到了一種快速的方法來優化呼叫。我不會查詢已經有查詢的數據,而會使用第一個查詢來獲取大部分數據,而不是在更新時查詢它。

回答

0

這將有助於極大地看到文檔標記(XHTML),你有你的內容和你的JavaScript函數的調用。

對於步驟2和4我推薦使用visibility屬性,而不是display,或是在一個fb:js-string承重橫條,並使用elem.setInnerFbml當你開始加載,一旦你有你的響應數據,簡單地將其更新到新的內容(在這種情況下,您不需要明確的loading_finish函數)。

在你get_skillpoint功能,您在對象中設置參數,然後在你所要發佈帖子的網址查詢參數的URL再次指定action參數 - 你可能最終得到一個值覆蓋其他,這取決於如何您可以在服務器端訪問這些值。如果它們不相同,我會建議對這兩個參數使用不同的名稱。另外,你爲什麼要發送單獨的GET和POST變量集?您應該將所有內容放在POST中,並簡單地忽略URL查詢字符串。我隱約記得過去以某種方式丟失了數據(隱約地記住你)。

如果您可以發佈您的標記,我會更新我的答案,以解決問題中的任何亮點。這可能會很慢,因爲Facebook在FBJS和AJAX方面並不是很快就盲目。另外,返回的FBML必須在應用程序獲取之前在FB代理中進行預處理,這會增加一點滯後;返回JSON稍微快一點,只需將所需的數據從中提取出來,然後將相應的部分放入現有元素中或使用fb:js-string

+0

如果我理解正確,我添加了標記。 – Anraiki 2009-12-14 17:34:13

+0

我會在幾小時內看到我是否可以用您的建議更新腳本:)謝謝。 – Anraiki 2009-12-14 17:35:26