2017-05-19 133 views
0

我正處於一個問題的中心。我已經創建了一個應用程序,我已經將DIV分配給ajax加載。每個DIV都對應一個特定模塊(如與產品詳細信息相關的一個模塊,與定價和可用性相關的另一個DIV)。每個模塊都是一個URL。如何防止javascript被多次加載

DIV1 ---對產品細節 DIV2 ---定價 DIV3 --- catogorisation

所有這些div被異步加載。在類別模塊中,我將特殊的JavaScript控件作爲樹形視圖進行類別瀏覽。

我面對的,如果我把JavaScript庫的主網頁,控制顯示不出來的問題。如果我將庫放在DIV3的URL源頁面中,那麼它會多次加載並掛起我的應用程序。

我的問題是如何防止用戶如果一次又一次地刷新DIV這個庫被加載多次。

或者如果它似乎是一個設計問題,可以請您給您的建議進行適當的設計。我很想知道如何卸載圖書館。我是java程序員,並以這種方式思考。也許是我的javascript工作

由於一些錯誤的認識提前
Jujhar

回答

1

Javascript代碼沒有,當你加載腳本標籤僅被執行。如果你只是把相關的代碼放在一個函數中,並從你的ajax函數中的成功回調中調用它,你可以很容易地避免這個問題。

  1. 移動<script>到HTML正文
  2. 裹在功能上相關的代碼

的Javascript

function myFunction() { 
    //... your code 
} 
  • 呼叫myFunction在阿賈克斯成功回調
  • Ajax

    $.get("/url", function(data) { 
        //add div to page 
        myFunction(); 
    }); 
    
    +0

    謝謝你的時間。這是有道理的,我剛剛實施它。 在我心中還有一個問題。 在myfFunction()如果我是初始化對象或我正在創建一個對象(如創建一個數據表),如果用戶刷新DIV,不會創建一個重複的對象?在第1個Ajax調用數據表對象將被創建,並且如果用戶刷新agaim相同的myFunction()。代碼將被執行並創建一個重複的對象。對不起,問這個愚蠢的問題,我可以包含代碼來檢查在創建新對象之前DOM對象是否已經創建。只是想知道是否有其他方式? – user3598304

    +0

    我不清楚你的意思是刷新一個div。如果刷新頁面,則所有內容都將從頁面中清除,因此不會有任何重複項目。 –