Django,推荐在块中声明和解决JavaScript依赖关系的方法
Django, recommended way to declare and solve JavaScript dependencies in blocks
有没有一种好的、高性能的和/或推荐的方法来声明和提供 Django 模板中块的 JS 依赖项?
基本上我想做的是这样的:
- 在包含块的 Django 模板文件中,声明:我需要 JS 库 X 才能运行。 在页面的标记
- 中,在呈现页面时,插入此库的脚本标记,但不要多次。
原因如下:
- 尽量减少页面中包含的不必要的JS库的数量,以保持旧浏览器中可接受的加载时间。(像jquery-ui这样的一些库对于旧的IE来说是非常重量级的)
- 防止可能重复加载 JS 库,无论是出于性能和错误预防原因。当您有重复的块或包含相同 JS 库的多个块时,就会发生这种情况。
我已经看到了一些潜在的解决方案,但到目前为止,从性能或清晰度的角度来看,它们都不是很有吸引力。
您可以使用
{% include %}
模板标签。如果你将js加载到头中,你可以做这样的事情:
基地.html
<head>
<title>XXXX</title>
...
<script type="text/javascript" src="{{ STATIC_URL}}js/jquery.js"></script>
...
{% block site_header %}{% endblock %}
</head>
其他.html
{% extends "base.html" %}
{% block site_header %}
...
<script type="text/javascript" src="{{ STATIC_URL }}admin/js/urlify.js"></script>
..
{% endblock %}
您必须根据需要调整模板/路径/等。
为此,我个人使用 Django关仔。在我的基本模板中,我有这个块:
{% 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>
然后,在我的包含或扩展模板中:
{% load sekizai_tags %}
{% add_data "js-data" "myapp/js/script.js" %}
注意你可以定义多个块,也可以将其用于CSS,这是非常方便。
添加带有"add_data"标签的文件永远不会重复,即使添加了多个次。
相关文章:
- 是否有用于CSS浏览器支持新功能的javascript解决方案
- 正在寻找与以下jQuery解决方案等效的javascript解决方案
- 用于回文变位的JavaScript解决方案
- “稍后提醒我”/“快速事件”JavaScript解决方案
- Jquery/Javascript 解决方案,用于将 wiki 文本转换为 HTML,反之亦然
- 小型JavaScript解决方案需要:此行是否有效代码
- 如何使用 Json 和 Javascript 解决 PHP 数组
- 欧拉挑战3 Javascript:解决方案给出正确答案 但随后我陷入了无限循环
- IE6/IE7上表单元格的Javascript解决方案
- 不支持的HTML5元素和属性的JavaScript解决方法
- 超轻伸缩javascript解决方案
- CSS/Javascript解决方案,可根据图像方向自动应用高度/宽度属性
- 根据本地机器上的用户时间戳更改样式表.Javascript解决方案
- 用JavaScript解决这个看似简单的数组循环难题
- 响应,跨浏览器和纯Javascript解决方案,以显示一个模态对话框
- Javascript解决方案,使add(5)(6)的输出为1
- 使用JavaScript解决这个编码难题很麻烦
- 如何使用Javascript解决异步问题
- Javascript解决Oracle没有布尔类型的问题
- 使用javascript解决iMacros错误