簡體   English   中英

檢查javascript是否已加載,然后調用另一個javascript

[英]Check if a javascript has loaded and then call another javascript

我有一個javascript從URL獲取JSON數據並將數據加載到頁面,然后我想調用另一個javascript來添加幻燈片效果。

有一個更簡單的解決方案,即使用setTimeout。 但是這個解決方案並不完整,因為從URL獲取數據沒有固定的時間。 它隨每次通話而變化。

因此,我想檢查我的第一個javascript是否已加載,然后我想調用第二個javascript。

JavaScript是一種異步語言,或者至少,它的HTTP API(大多數)是異步的。

您不應該使用settimeout,但是您應該使用異步鏈接來構建因果事件列表。 有很多庫可以幫助解決這個問題,例如http://www.infoq.com/articles/surviving-asynchronous-programming-in-javascript

如果您正在從您自己的站點加載內容,那么當JSON最終加載時會有onsuccess / oncomplete事件,您可以為其分配回調。 它是如何實際調用的,取決於你的javascript框架,如果你使用它。

如果您以一種名為JSONP的格式使用來自遠程站點的數據,那么您要定義一個回調函數,它應該是一個公共函數名,比如onMyDataArrived 你應該在那里添加你的回調代碼。 有些框架會隱藏這些細節,它們會生成一個隨機函數,它們會在數據到達時刪除,並提供類似於onSuccess / onComplete的API。

如今,最流行的javascript框架是jQuery,你可以在這里做這樣的事情,比如:

$.ajax({
    url: 'give_me_my_json.php',
    dataType: 'json', 
    success: function(data){
         //call your second javascript
    }, 
    error: function(){
         //WHOOOPSIE... data could not be loaded
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM