雅虎的Best Practices for Speeding Up Your Website状态:
Put Scripts at the Bottom
我的 Django 应用程序中有两种类型的脚本:
- 包含在我的基本(例如继承)模板中的脚本;和
- 在由模板标签实例化的模板内编写的脚本
支持 UI 控件的脚本必须是模板的一部分,因为它们的支持模板标记可以处理诸如唯一 ID 之类的内容,并将相关代码保持在一起。
问题是,如果我听从 Yahoo 的建议并将库 (#1) 放在页面底部,100% 的内联脚本 (#2) 将失败,因为库尚未加载和解析还没有。
我不能在我的基本模板中扩展一个 {% block %} 元素,因为我在 templatetag 的上下文中所做的任何事情都不会传播到它之外——设计是为了避免变量名冲突(根据 Django 的文档).
有谁知道如何将 JavaScript 从我的 templatetags 模板中推迟到在我的基本模板底部呈现?
最佳答案
我通常有一个像这样的基本模板设置。
<html>
<head>
{% block js-head %} Tags that need to go up top {% endblock js-head %}
</head>
<body>
{% block header %} Header {% endblock header %}
{% block body %} Body goes here {% endblock body %}
{% block footer %} Footer {% endblock footer %}
{% block js-foot %} All other javascript goes here {% endblock js-foot %}
</body>
</html>
然后我可以扩展这个基本模板,只覆盖我关心的 block 。我将所有不必位于标题中的 javascript 放在 js-foot 中,因为它位于模板的底部,所以它将最后加载。如果您必须移动 javascript 加载的位置,您只需在基本模板中移动 js-foot block 。
没什么特别的,但它确实有效。
关于javascript - 使用templatetags时如何将JavaScript放在Django页面的底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101458/