2017-05-19 125 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。如果刷新页面,则所有内容都将从页面中清除,因此不会有任何重复项目。 –