mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-14 05:36:58 +03:00
Use defer for script tags (Fix #2922)
* This way, scripts from external URLs are loaded asynchronously. By putting it at the top of the file, the browser parses it first, downloads it while continuing to parse the HTML, and then executes on parsing finish * Additionally, developers will not need to use $(window).ready() or the like in their files anymore. * Added inline_javascript tag in case anyone wants to use the bottom of the HTML page to execute some Javascript. Using defer here has no effect as inline scripts defer by default Signed-off-by: Andrew-Chen-Wang <acwangpython@gmail.com>
This commit is contained in:
parent
4b97071cfe
commit
607c9676f5
|
@ -59,7 +59,7 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block javascript %}
|
{% block inline_javascript %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
(function() {
|
(function() {
|
||||||
|
|
|
@ -31,6 +31,30 @@
|
||||||
{% endraw %}{% endif %}{% raw %}
|
{% endraw %}{% endif %}{% raw %}
|
||||||
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
<!-- Le javascript
|
||||||
|
================================================== -->
|
||||||
|
{# Placed at the top of the document so pages load faster with defer #}
|
||||||
|
{% block javascript %}
|
||||||
|
{% endraw %}{% if cookiecutter.custom_bootstrap_compilation == "y" and cookiecutter.js_task_runner == "Gulp" %}{% raw %}
|
||||||
|
<!-- Vendor dependencies bundled as one file-->
|
||||||
|
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% compress js %}{% endraw %}{% endif %}{% raw %}
|
||||||
|
<script defer src="{% static 'js/vendors.js' %}"></script>
|
||||||
|
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
||||||
|
{% endraw %}{% else %}{% raw %}
|
||||||
|
<!-- Bootstrap JS and its dependencies-->
|
||||||
|
<script defer src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
||||||
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
|
||||||
|
<script defer src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<!-- Your stuff: Third-party javascript libraries go here -->
|
||||||
|
{% endraw %}{% endif %}{% raw %}
|
||||||
|
|
||||||
|
<!-- place project specific Javascript in this file -->
|
||||||
|
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% compress js %}{% endraw %}{% endif %}{% raw %}
|
||||||
|
<script defer src="{% static 'js/project.js' %}"></script>
|
||||||
|
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
||||||
|
|
||||||
|
{% endblock javascript %}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -92,30 +116,9 @@
|
||||||
|
|
||||||
{% block modal %}{% endblock modal %}
|
{% block modal %}{% endblock modal %}
|
||||||
|
|
||||||
<!-- Le javascript
|
{% block inline_javascript %}
|
||||||
================================================== -->
|
{# Script tags with only code, no src (defer by default) #}
|
||||||
<!-- Placed at the end of the document so the pages load faster -->
|
{% endblock inline_javascript %}
|
||||||
{% block javascript %}
|
|
||||||
{% endraw %}{% if cookiecutter.custom_bootstrap_compilation == "y" and cookiecutter.js_task_runner == "Gulp" %}{% raw %}
|
|
||||||
<!-- Vendor dependencies bundled as one file-->
|
|
||||||
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% compress js %}{% endraw %}{% endif %}{% raw %}
|
|
||||||
<script src="{% static 'js/vendors.js' %}"></script>
|
|
||||||
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
|
||||||
{% endraw %}{% else %}{% raw %}
|
|
||||||
<!-- Bootstrap JS and its dependencies-->
|
|
||||||
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
|
|
||||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
<!-- Your stuff: Third-party javascript libraries go here -->
|
|
||||||
{% endraw %}{% endif %}{% raw %}
|
|
||||||
|
|
||||||
<!-- place project specific Javascript in this file -->
|
|
||||||
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% compress js %}{% endraw %}{% endif %}{% raw %}
|
|
||||||
<script src="{% static 'js/project.js' %}"></script>
|
|
||||||
{% endraw %}{% if cookiecutter.use_compressor == "y" %}{% raw %}{% endcompress %}{% endraw %}{% endif %}{% raw %}
|
|
||||||
|
|
||||||
{% endblock javascript %}
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
{% endraw %}
|
{% endraw %}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user