【发布时间】:2015-09-21 01:34:50
【问题描述】:
在 Django 中,如何处理需要等待加载 JS 文件才能真正使用它的事实?
让我们看看这个例子的问题:
base.html
<!DOCTYPE html>
<html>
<head>...</head>
<body>
{% include "content.html" %}
<script src="jquery.js"></script>
<script src="awesome-script.js"></script>
</body>
</html>
content.html
<script>
$(document).ready(function(){
...
});
</script>
这在逻辑上失败了 ($ is undefined)。我可以在调用脚本之前加载 jQuery,但我试图避免在我的主要内容之前加载 JS 文件,以尽可能快地加载网站。
那么,我该怎么办?谢谢。
【问题讨论】:
-
我真的不理解您发布的代码。
content.html与base.html有什么关系?如果它提供了{% block main-content %},那么显然在加载 jQuery 之前调用了脚本。 -
是的,当然它之前被调用过(我用一个更明显的例子更新了代码)关键是我们需要在调用 JS 之前加载内容(为了不让页面变慢)但是在调用 content.html 中的脚本之前,我们必须等待所有 JS 加载完毕。
-
或者如果 jquery 是在内容之前加载的唯一脚本,也许没关系?
-
你不能清楚地期望 jQuery 脚本在 jQuery 被加载之前被执行。您必须更改脚本顺序。更新了答案。
-
当然,如果我加载 jquery,然后是我的内容,然后是我的脚本,这会很好。但问题是:在加载我的内容之前加载 BIG Javascript 文件是否可以接受?我想这不是一个好习惯,我希望有更好的解决方案,我想我错了:)
标签: javascript jquery python django django-templates