Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止多次加载javascript_Javascript_Jquery_Ajax - Fatal编程技术网

如何防止多次加载javascript

如何防止多次加载javascript,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正处于一个问题之中。我制作了一个应用程序,在其中我指定了要由ajax加载的DIV。每个DIV对应一个特定的模块(比如一个与产品详细信息相关的模块,另一个与定价和可用性相关的DIV)。每个模块都是一个URL 第1部分——产品详细信息 第2部分——定价 第3部分——卡托戈里亚 所有这些div都是异步加载的。在category模块中,我有一个特殊的javascript控件,用于以树状视图的形式浏览类别 我面临的问题是,如果我将javascript库放在主页面中,控件将不会显示。如果我将库放在DIV3

我正处于一个问题之中。我制作了一个应用程序,在其中我指定了要由ajax加载的DIV。每个DIV对应一个特定的模块(比如一个与产品详细信息相关的模块,另一个与定价和可用性相关的DIV)。每个模块都是一个URL

第1部分——产品详细信息 第2部分——定价 第3部分——卡托戈里亚

所有这些div都是异步加载的。在category模块中,我有一个特殊的javascript控件,用于以树状视图的形式浏览类别

我面临的问题是,如果我将javascript库放在主页面中,控件将不会显示。如果我将库放在DIV3的URL源页面中,那么它会多次加载并挂起我的应用程序

我的问题是,如果用户一次又一次刷新DIV,如何防止多次加载此库

或者,如果这似乎是一个设计问题,请您提供适当的设计建议。我很想知道如何卸载图书馆。我是一名java程序员,并以这种方式思考。我可能对javascript的工作有一些错误的理解

提前感谢

Jujhar

Javascript代码不必仅在加载脚本标记时执行。如果您只是将相关代码放在一个函数中,并从ajax函数中的成功回调调用它,您就可以轻松避免这个问题

  • 移动到html正文
  • 在函数中封装相关代码
  • Javascript

    function myFunction() {
      //... your code
    }
    
  • 在ajax成功回调中调用
    myFunction
  • 阿贾克斯


    谢谢你抽出时间。这是有道理的,我刚刚实现了它。我脑子里还有一个问题。在myfFunction()中,如果我是初始化对象或创建对象(如创建数据表),如果用户刷新DIV,它是否会创建重复的对象?在第一次ajax调用中,将创建datatable对象,如果用户再次刷新,则使用相同的myFunction()。代码将被执行&创建一个重复的对象。很抱歉问这个愚蠢的问题,我可以在创建新的DOM对象之前包含检查DOM对象是否已经创建的代码。只是想知道是否还有其他方法?我不知道刷新div是什么意思。如果刷新页面,所有内容都将从页面中清除,这样就不会有任何重复。
    $.get("/url", function(data) {
      //add div to page
      myFunction();
    });