django MTV 静态文件js的添加方式,以及怎么优化js的加载
django MTV 静态文件js的添加方式,以及怎么优化js的加载
1:怎么添加js
2:怎么优化js的加载
django MTV 需要用到的js时,使用以下方式
Title {{ context }}
上面代码 不继承任何模板,也不继承 base.hmtl
js使用方式
插入js的方式1:
直接写 相当于访问后端 http://127.0.0.1:8000/a.js
因为这个[html]文件是在这个项目的[templates]文件夹中,如我把[a.js]文件也放在这个目录中,idea编辑器 会提示 允许写这个目录中的[a.js]文件。 但是,django不会把项目中的templates文件夹中的a.js文件进行映射
插入js的方式2:
直接写 相当于访问后端 http://127.0.0.1:8000/static/a.js
这时会出现2个状态 DEBUG=True 时,静态文件夹[static/a.js] 会被正常的获取 DEBUG=False 时,静态文件夹[static/a.js] 禁止获取 ---django不建议直接映射静态文件
插入js的方式3:
{% load static %} 相当于访问后端 http://127.0.0.1:8000/static/a.js
DEBUG=True 时,django能够进行向浏览器发送 a.js 并且, 1:当a.js文件是在static文件夹中时,是能够被浏览器获取到的 2:当a.js文件不存在static文件夹中时,那么前端无法获取到该文件,并且返回404,就算把a.js文件放到[templates]文件夹中也不行 当然, DEBUG=True 时,静态文件夹[static/a.js] 会被正常的获取 DEBUG=False 时,静态文件夹[static/a.js] 禁止获取 ---django不建议直接映射静态文件 这里加了 {% static 'a.js'%} 表示 Django使用静态模板标记,通过配置STATICFILES STORAGE为给定的相对路径构建URL。静态模板标签用于引用Django模板中的静态文件,如图像、JavaScript或CSS 一般都指向与manage.py相同等级路径中的static文件夹中
关于script中对js的设定执行时间节点
后端会按照html中的顺序,从第一行开始发送html文件中的代码给浏览器,直至最后一行 在浏览器接收到head 部分时, 当浏览器接收到 这行后,会即刻去下载a.js, 1:普通的情况下: 浏览器会先去下载完a.js之后才去继续接收head的后面body部分,并且当下载完a.js后会即刻执行a.js的逻辑,再继续下载body部分。 2:异步情况:a.js 与body 部分同时下载 那么这个异步下载中会出现以下状况: 2.1:a.js 与body 部分同时下载,浏览器先接收到的body部分的一些,或许是前10行,后面还有50行未接收, 这时:浏览器会马上渲染这个10行body部分 当接收到20行body部分时,这时a.js也接收完了,即刻执行a.js中的逻辑 2.2:a.js 与body 部分同时下载,body部分边接收,边渲染,直到body的接收完成,才允许a.js对body进行操作 1 : 2.1: 2.2:
The End