2012-11-22 16 views
2

我想使用JSON-P將我的Google日曆提要加載到我的網頁上。爲了使頁面上的主要內容加載更快,只有在加載頁面後,我纔會將JSON-P的腳本標記注入頭標記。 Google Calendar API會返回一個帶回調函數的腳本,請參閱示例here加載JSON-P時可以避免使用全局回調函數嗎?

是否可以避免使用全局函數作爲回調函數?我想包裝所有必要的代碼,以便在一個包裝函數中注入標籤並解析結果。

+0

不是。這就是JSONP的工作方式。一個回調函數來「執行」jsonp調用的結果數據。 –

+0

否。回調必須在全局範圍內可用 - 但它可能是名稱空間函數。 – Bergi

回答

1

號當您使用JSON-P電話,服務器返回類似下面的東西:

callback({...}) 

在您使用<script>元素引用這個JSON-P調用URL,瀏覽器會下載JavaScript代碼並執行它,這意味着使用服務器提供的數據執行您的callback函數。

如果你不想要回調函數來污染你的全局命名空間,只需在你的回調函數中添加一些命名空間,如com.mycode.callback

使用JSON-P的最大優勢在於它可以在瀏覽器中使用Same Origin Policy,您可以輕鬆使用來自其他域的數據。

2

你可以做的是使用應用程序所在的全局方法。

MYAPP.method({...}); 
相關問題