使用JQuery.load(),我改變我的網站的主窗口的內容,以允許用戶在標籤之間切換。對於每個選項卡,都有一個或多個scipt,其中包含加載選項卡內容後執行的函數。如果函數已經存在,請阻止重新加載javascript。否則,確保同步加載
顯然切換到選項卡,第一次的時候,腳本必須從服務器獲取和解釋,但如果用戶切換回選項卡以後這不應該發生。所以,把它簡稱:
負荷()HTML
確保JavaScript函數存在,否則負載腳本和解釋。
呼叫一對DOM之後的JavaScript的功能重建。
在執行步驟3之前,第一步和第二步必須完成。
目前,我使用嵌套的回調來實現這一點:
function openFirstTab(){
$("#mainWindow").load("firstTab.php", function(){
if(typeof(onloadfFirstTab) != "function"){
jQuery.getScript("assets/js/FirstTab.js", function(){
onloadFirstTab();
});
}
else{
onloadFirstTab();
}
});
}
但我覺得應該有一個更好的辦法。
如果您閱讀我發佈的代碼,您將會看到我已經檢查過所需函數是否存在:'typeof(onloadfFirstTab)!=「function」'。這不是我的問題。在我尚未加載一個(或多個)腳本的情況下,我正忙於同步。至於號碼3,我想防止重新加載,不僅是重新初始化。如果這是有道理的。 –
@Konstantin - 你不清楚你在問什麼。我看到你發佈的內容,並認爲你在說這個代碼可行,你只是問是否有比這更乾淨的東西。我總結了可用的選項。如果您擔心同步,那麼您可以使用選項2並在啓動負載時設置標誌,這樣您就不必擔心在第一個負載啓動之後開始第二個負載,但尚未完成。 – jfriend00
對不起,我沒有明確表達自己,很難問一個確切的問題。關於你的建議:即使我選擇了第二種選擇,我可能會遇到這樣的問題,即在加載多個腳本之前,需要等待函數調用。 –