Django,在块中声明和解决JavaScript依赖关系的推荐方法 [英] Django, recommended way to declare and solve JavaScript dependencies in blocks
问题描述
在Django模板中是否有一种良好的,高性能的和/或推荐的方法来声明和提供JS依赖项?
Is there a good, performant and/or recommended way to declare and provide JS dependencies for blocks in Django templates?
基本上我想做的是:
- 在包含块的Django模板文件中,声明:我需要JS库X才能起作用。
- 在页面的标签中,渲染页面后,为此库插入一个脚本标签,但不要超过一次。
原因:
- 最小化页面中包含的不必要JS库的数量,以使加载时间在旧浏览器中可以接受。 (某些jquery-ui之类的库对于旧版IE而言非常重要)
- 出于性能和错误预防的原因,防止可能重复加载JS库。当您重复执行块或包含同一个JS库的多个块时,就会发生这种情况。
我已经看到了一些可能的解决方案,但是没有到目前为止,从性能或清晰度的角度来看,它们中的每一个都是令人信服的。
I've seen some potential solutions to this but none of them were very compelling from a performance or clarity perspective, so far.
推荐答案
为此,我个人使用 Django
Sekizai 。
在我的基本模板中,我有以下代码段:
For this purpose, I personnaly use Django Sekizai. In my base template I have this block :
{% load sekizai_tags %}
<body>
# your own logic here
{% with_data "js-data" as javascripts %}
{% for javascript in javascripts %}
<script type="text/javascript"
src="{{ STATIC_URL }}{{ javascript }}" ></script>
{% endfor %}
{% end_with_data %}
</body>
然后,在我包含或扩展的模板中:
Then, in my included or extending templates :
{% load sekizai_tags %}
{% add_data "js-data" "myapp/js/script.js" %}
请注意,您可以定义多个块,并将其用于CSS,这非常方便
。
Note you can define multiple blocks, and also use it for CSS, which is very convenient.
添加了 add_data标签的文件将永远不会重复,即使添加了几次
次。
Files added with "add_data" tag will never be repeated even if added several times.
这篇关于Django,在块中声明和解决JavaScript依赖关系的推荐方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!