Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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_Ruby On Rails_Turbolinks - Fatal编程技术网

Javascript 如何在每次单击链接加载新页面时停止加载其他资产?

Javascript 如何在每次单击链接加载新页面时停止加载其他资产?,javascript,jquery,ruby-on-rails,turbolinks,Javascript,Jquery,Ruby On Rails,Turbolinks,我有一个奇怪的问题,当我点击项目中的链接时,我会得到一个额外的资产包,每次点击=+1个额外的资产包。10次点击=10份资产副本。(10个图像,10个css文件,10个js文件,而不是1个)。我的所有jquery事件都会触发10次。我甚至不知道从哪里寻找解决办法。如果有任何帮助,我将不胜感激 我的app.js //= require jquery //= require jquery_ujs //= require foundation //= require

我有一个奇怪的问题,当我点击项目中的链接时,我会得到一个额外的资产包,每次点击=+1个额外的资产包。10次点击=10份资产副本。(10个图像,10个css文件,10个js文件,而不是1个)。我的所有jquery事件都会触发10次。我甚至不知道从哪里寻找解决办法。如果有任何帮助,我将不胜感激

我的app.js

    //= require jquery
    //= require jquery_ujs

    //= require foundation

    //= require turbolinks
    //= require jquery.easing.1.3.js
    //= require_tree .

    $(function(){
        $(document).foundation();
    });


    $(document).ready(function () {
        var $main_container = $("#main_container");
        var $menu_link = $('#menu-link');
        var $s_menu = $("#s-menu");

        $menu_link.click(function () {
            $main_container.animate({"margin-left": "-200px"}, 100);
            $s_menu.animate({"margin-right": "0"}, 100);
        });

        $(".container-fluid").on("click", function(){
            $main_container.animate({"margin-left": "0"}, 100);
            $s_menu.animate({"margin-right": "-200px"}, 100);
        });


        $('input[type="submit"]').focus(function(){
            $(this).blur();
        });

    });
============

经过一些实验(我从我的项目中删除了所有js),我觉得问题在于rails缓存。因为每次单击都会迫使浏览器下载新的资产包

============

我发现我的问题在于turbolinks gem,它每次都缓存资产,然后下载新的资产包。但是我如何解决这个问题呢?

你在哪里加载

<%= javascript_include_tag "application" %>

如果在正文中的页面底部加载,turbolinks将刷新整个正文标记,这可能导致在单击链接时加载多个资源。将其移动到头部的顶部。

在哪里加载

<%= javascript_include_tag "application" %>


如果在正文中的页面底部加载,turbolinks将刷新整个正文标记,这可能导致在单击链接时加载多个资源。将其移动到头部的顶部。

我意识到我在调用
主体
标记中的其他脚本。我意识到我在调用
主体
标记中的其他脚本