Django,在块中声明和解决JavaScript依赖关系的推荐方法 [英] Django, recommended way to declare and solve JavaScript dependencies in blocks

查看:85
本文介绍了Django,在块中声明和解决JavaScript依赖关系的推荐方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Django模板中是否有一种良好的,高性能的和/或推荐的方法来声明和提供JS依赖项?

Is there a good, performant and/or recommended way to declare and provide JS dependencies for blocks in Django templates?

基本上我想做的是:


  1. 在包含块的Django模板文件中,声明:我需要JS库X才能起作用。

  2. 在页面的标签中,渲染页面后,为此库插入一个脚本标签,但不要超过一次。

原因:


  1. 最小化页面中包含的不必要JS库的数量,以使加载时间在旧浏览器中可以接受。 (某些jquery-ui之类的库对于旧版IE而言非常重要)

  2. 出于性能和错误预防的原因,防止可能重复加载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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆