如何检查一个JS脚本是否未加载两次或更多次?

时间:2017-08-03 09:01:25

标签: javascript jquery

我在Symfony Project工作,使用Twig模板引擎。 我有一个form.html.twig文件,其中我有一个大表单,还有一个可以生成多次我想要的。 所以,当我按下" +"按钮,出现一个新的子表单。 这个表单出现在prototype.html.twig文件中,其中存储了表单的所有HTML,包括JS。

看起来像:

<table class="table table-responsive table-bordered text-center" style="margin-bottom:0px;">  
    <tr class="active">
        <td style="vertical-align:middle; padding-top:9px; padding-left:4px; padding-right:4px;"> <span style ="font-size: 24px;" class="glyphicon glyphicon-upload"></span></p>    </td> 
        <td>{{ form_row(form.date) }}</td>
        <td>{{ form_row(form.value) }}</td>
        <td> {{ form_label(form.type, 'Value as % of') }}
              {{ form_widget(form.type) }} </td> 
        <td>{{ form_row(form.frequency) }}</td>
        <td>{{ form_row(form.duration) }}  </td>
        <td>{{ form_row(form.agreement) }}</td>
        <td class="deleteButton" style="vertical-align:middle;"><a href="#"><button class="btn-sm btn-danger" style="border-radius:100%;"><span class="glyphicon glyphicon-remove"></span></button></a></td>
    </tr>
</table>

<script>
    $('.deleteButton').on('click', function(e) {
            e.preventDefault();
            $(this).parent().remove();
        });
</script>


{% block javascripts %}
<script src="{{asset('js/endingDateCalculator.js')}}"></script>
{% endblock javascripts %}

看看阻止javascripts。在这个块中,我有一个脚本,用于计算子表单中的结束日期。所以,一旦我点击&#34; +&#34;按钮出现一个新表单,脚本endingDateCalculator正在运行并连接以使用此表单。

我有点担心,如果我点击多次&#34; +&#34;,换句话说......如果我有超过1个子表单,则会调用此脚本一次又一次,这会降低页面速度,或者/并且可以在同一时间内制作错误。

一次又一次地打电话? 如果是,我该如何解决? 我尝试将endingDateCalculator.js链接到form.html.twig(基本模板),但在这种情况下,当我生成新表单时,此脚本无效。

1 个答案:

答案 0 :(得分:0)

不确定symfony,但其中一个选项可能就是这个

<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery-2.0.0.min.js">\x3C/script>')</script>

======

来自https://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx