javascript - 使用templatetags时如何将JavaScript放在Django页面的底部?

标签 javascript django templatetags

雅虎的Best Practices for Speeding Up Your Website状态:

Put Scripts at the Bottom

我的 Django 应用程序中有两种类型的脚本:

  1. 包含在我的基本(例如继承)模板中的脚本;和
  2. 在由模板标签实例化的模板内编写的脚本

支持 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/

相关文章:

javascript - JS从django模板标签获取数据

javascript - 如何从 jQuery 中的 select 的选定选项中获取属性?

javascript - 自动更新 HTML Canvas 宽度和高度属性

Django 风格 : Long queries?

django - 正确使用 Django assignment_tag 内置标签

python - Django 中的 ViewDoesNotExist

JavaScript 通过 Cscript 运行时错误 - 预期为奇数 ';'

javascript - Sharepoint 2010 中的文本到 Html 转换

python - Django TemplateSyntaxError 与模板标签

django - 在 Django 中,如何迭代需要参数的自定义模板标签的结果?