我想使用JSON-P將我的Google日曆提要加載到我的網頁上。爲了使頁面上的主要內容加載更快,只有在加載頁面後,我纔會將JSON-P的腳本標記注入頭標記。 Google Calendar API會返回一個帶回調函數的腳本,請參閱示例here。加載JSON-P時可以避免使用全局回調函數嗎?
是否可以避免使用全局函數作爲回調函數?我想包裝所有必要的代碼,以便在一個包裝函數中注入標籤並解析結果。
我想使用JSON-P將我的Google日曆提要加載到我的網頁上。爲了使頁面上的主要內容加載更快,只有在加載頁面後,我纔會將JSON-P的腳本標記注入頭標記。 Google Calendar API會返回一個帶回調函數的腳本,請參閱示例here。加載JSON-P時可以避免使用全局回調函數嗎?
是否可以避免使用全局函數作爲回調函數?我想包裝所有必要的代碼,以便在一個包裝函數中注入標籤並解析結果。
號當您使用JSON-P電話,服務器返回類似下面的東西:
callback({...})
在您使用<script>
元素引用這個JSON-P調用URL,瀏覽器會下載JavaScript代碼並執行它,這意味着使用服務器提供的數據執行您的callback
函數。
如果你不想要回調函數來污染你的全局命名空間,只需在你的回調函數中添加一些命名空間,如com.mycode.callback
。
使用JSON-P的最大優勢在於它可以在瀏覽器中使用Same Origin Policy,您可以輕鬆使用來自其他域的數據。
你可以做的是使用應用程序所在的全局方法。
MYAPP.method({...});
不是。這就是JSONP的工作方式。一個回調函數來「執行」jsonp調用的結果數據。 –
否。回調必須在全局範圍內可用 - 但它可能是名稱空間函數。 – Bergi