我已經使用這種JavaScript加載跨域腳本。它在哪裏非常有用。這裏是一個例子來展示我的意思。
[請記住,JS不允許來自javascript的跨域調用;由於內置的安全限制]
在域www.xyz.com
蹉跎,讓我可以訪問用戶的列表,從http://xyz.com/users/list?age=20
它返回一個JSON服務,以捆綁方式類似以下 JSON:
{username:"user1", age:21}
如果我要求這個JSON包裹在一個類似的方法如下:
callMyMethod({username:"user1", age:21})
那麼這是一個包裹JSON這要是我的網頁上加載;將嘗試調用一個名爲callMyMethod的方法。這將允許在<script src="source">
類型的聲明中,但不會被允許。
所以,我能做的就是如下
<script language="javascript" src="http://xyz.com/users/list?age=20"></script>
<script language="javascript">
function callMyMethod(data)
{
//so something with the passed json as data variable.
}
</script>
這將讓我使用JSON從其他領域,這我不會已經能夠不這樣做來的東西。所以;你會看到我如何才能實現跨域腳本,否則這將是一個難以解決的難題。
這只是其中的一種用途。
其他原因爲什麼會有人這樣做是:
- 到版本的JS文件與 版本。
- 解壓js文件,以便在js和params傳遞給URL時發生一些變化時將它們加載到客戶端上將嘗試獲取最新的JS。這將使新的更改立即反映在客戶端上。
- 當你想生成條件JS。
您在示例中指定的用法不會起到很大作用;如果服務器處理需要時間,可能會延遲頁面的加載,而非async ajax調用會更受歡迎。