Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 jquery函数只包含一次?_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery函数只包含一次?

Javascript jquery函数只包含一次?,javascript,jquery,html,Javascript,Jquery,Html,我正在用jquery构建单页应用程序。假设我有这样一个边栏 dashboard.html order.html 每次单击它,我都会通过ajax加载内容。它的工作很好,但我来回btw页面我注意到脚本加载了两次或更多。如何解决这个问题?将脚本和HTML放在不同的文件中。然后跟踪是否已加载脚本,不要再加载 var dashboard_js_loaded = false; $("#dashboard").click(function() { $("#content").load("dashbo

我正在用jquery构建单页应用程序。假设我有这样一个边栏

dashboard.html
order.html

每次单击它,我都会通过ajax加载内容。它的工作很好,但我来回btw页面我注意到脚本加载了两次或更多。如何解决这个问题?

将脚本和HTML放在不同的文件中。然后跟踪是否已加载脚本,不要再加载

var dashboard_js_loaded = false;
$("#dashboard").click(function() {
    $("#content").load("dashboard.html", function() {
        if (!dashboard_js_loaded) {
            $.getScript("dashboard.js", function() {
                dashboard_js_loaded = true;
            });
        }
    });
});

也许可以使用像require.js这样的库来更普遍地管理它。或者,您可以编写一个简单的函数,跟踪对象中加载了哪些JS文件。

您应该使用AJAX加载HTML内容,只在主页中加载脚本。@Barmar否,如果我的应用程序很大,则会发生冲突,你一次加载所有东西都是浪费时间。在构建没有框架的SPA时,可能需要重复require.js吗?@AliciaBrandon我自己从未使用过它,所以我想不会。但是我还没有写过任何SPA,每个组件都需要不同的JS。如果没有require.JS,我将JS放在htmls中,这是一种不好的做法吗?浪费记忆对吧?假设我有5个选项卡,内存中的函数或变量是缓存的,即使我单击了其他选项卡,是否正确?如果重新加载文件,它将重新定义函数,垃圾收集器将清理以前的定义。我在回答中给了你一个建议。你为什么问我关于其他解决方案的问题?