django 模板js文件为什么最后引入

<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> 为什么最后引入

例子

<!-- templates/inspection_records.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>机房巡检记录</title>
    <!-- 引入Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <h1 class="mb-4">机房巡检记录</h1>

        <div class="table-responsive">
            <table class="table table-striped table-hover">
                <thead>
                    <tr>
                        <th>机房名称</th>
                        <th>巡检人员</th>
                        <th>巡检日期</th>
                        <th>温度(摄氏度)</th>
                        <th>湿度(百分比)</th>
                        <th>服务器状态</th>
                        <th>交换机状态</th>
                        <th>发现的问题</th>
                    </tr>
                </thead>
                <tbody>
                    {% for record in records %}
                    <tr>
                        <td>{{ record.room_name }}</td>
                        <td>{{ record.inspector }}</td>
                        <td>{{ record.inspection_date }}</td>
                        <td>{{ record.temperature }}</td>
                        <td>{{ record.humidity }}</td>
                        <td>{{ record.get_server_status_display }}</td>
                        <td>{{ record.get_switch_status_display }}</td>
                        <td>{{ record.issues_found }}</td>
                    </tr>
                    {% endfor %}
                </tbody>
            </table>
        </div>
    </div>

    <!-- 引入Bootstrap JS -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

在典型的Web开发流程中,通常将页面的样式(CSS)文件放在 <head> 标签中引入,而将页面的脚本(JavaScript)文件放在页面底部,即在 </body> 标签之前引入。这样做有几个原因:

  1. 提高性能: 将 JavaScript 文件放在页面底部可以提高页面加载性能。当浏览器遇到 JavaScript 文件时,它会阻塞页面的渲染,直到该文件完全加载和执行。通过将 JavaScript 文件置于页面底部,可以使页面其他内容更快地加载和呈现给用户。

  2. 避免阻塞渲染: 放置 JavaScript 文件在底部有助于避免阻塞页面内容的渲染。如果 JavaScript 文件位于页面顶部,浏览器会等待 JavaScript 加载和执行后才继续渲染其余内容,导致页面显示延迟。

  3. 保证脚本依赖性: 通常,JavaScript 文件可能依赖于页面上已经存在的元素或结构。将 JavaScript 文件放在底部可以确保页面上所需的 HTML 结构已经加载,避免了可能由于缺少依赖项而导致的错误。

总结来说,将 JavaScript 文件放在页面底部可以改善页面加载性能并确保更好的用户体验。在上述示例中,我们将 Bootstrap 的 JavaScript 文件放在页面底部,以便达到这些优势。

展示效果

在这里插入图片描述
根据这个文章 使用django model 建立一个机房巡检记录表
然后写了一个前端页面

再次优化

<!-- templates/inspection_records.html -->

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>机房巡检记录</title>
    <!-- 引入Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <h1 class="mb-4">机房巡检记录</h1>
    
        <div class="table-responsive">
            <table class="table table-striped table-hover">
            <thead>
        <tr>
            <th>机房名称</th>
            <th>巡检人员</th>
            <th>巡检日期</th>
            <th>温度(摄氏度)</th>
            <th>湿度(百分比)</th>
            <th>服务器状态</th>
            <th>交换机状态</th>
            <th>发现的问题</th>
        </tr>
    </thead>
    <tbody>
        {% for record in records %}
        <tr>
            <td>{{ record.room_name }}</td>
            <td>{{ record.inspector }}</td>
            <td>{{ record.inspection_date }}</td>
            <td style="color: {% if record.temperature > 25 %}red{% else %}green{% endif %}">{{ record.temperature }}</td>
            <td style="color: {% if record.humidity > 70 %}red{% else %}green{% endif %}">{{ record.humidity }}</td>
            <td style="background-color: {% if record.server_status == '异常' %}red{% else %}green{% endif %}">{{ record.get_server_status_display }}</td>
            <td style="background-color: {% if record.switch_status == '异常' %}red{% else %}green{% endif %}">{{ record.get_switch_status_display }}</td>
            <td>{{ record.issues_found }}</td>
        </tr>
        {% endfor %}
    </tbody>
    </table>
        <!-- 引入Bootstrap JS -->
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/535682.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper解析

目录 zookeeper定义 zookeeper定义 Zookeeper是一个开源的分布式的&#xff0c;为分布式框架提供协调服务的Apache项目 Zookeeper工作机制 zookeeper从设计模式角度来理解&#xff1a; 是一个基于观察者模式设计的分布式服务管理框架&#xff0c;它负责存储和管理大家都关心…

arm内核驱动-中断

先介绍个东西 ctags 这个工具可以像keil一样在工程里查找跳转&#xff0c;帮我们找到我们想要的东西。 安装教程可以找到&#xff0c;这里只讲怎么用。 在工程目录&#xff08;包含所有你会用到的头文件等&#xff09;下&#xff0c;先加载这个命令&#xff0c;可能要等待…

VSCode中调试C++程序

目录 一、准备工作&#xff1a;安装插件 1、C/C插件 ​编辑 2、CMake插件 3、CMake tool插件 二、调试过程 1、debug 2、打断点 3、调C/C文件 每次重新调试的时候都忘了具体步骤&#xff0c;直接给自己写个备忘录好了。 一、准备工作&#xff1a;安装插件 1、C/C插件…

李沐29_残差网络ResNet——自学笔记

残差网络 残差网络的核心思想是&#xff1a;每个附加层都应该更容易地包含原始函数作为其元素之一。 残差块 串联一个层改变函数类&#xff0c;我们希望扩大函数类&#xff0c;残差块加入快速通道来得到f(x)xg(x)的结果 ResNet块 1.高宽减半的ResNet块&#xff08;步幅2&a…

Android开发之移除权限

Android开发之移除权限 在Android开发结束后&#xff0c;我们将build好的App Bundle上传至Google Play。这时Google可能会提示一些需要解决的错误&#xff0c;比如xx权限需要限制&#xff0c;需要解释为什么需要这些权限&#xff0c;需要添加文字描述和视频链接&#xff0c;但…

MicroCinema与CCEdit:让文生视频兼具创造性与可控性

编者按&#xff1a;随着视频生成技术的飞速进步&#xff0c;我们见证了人工智能技术在视频清晰度、长视频连贯性以及对物理变化理解和镜头转换处理能力方面的显著提升。不过&#xff0c;这些高质量的生成结果是否完全符合我们的需求呢&#xff1f;显然&#xff0c;并非总是如此…

如何借助AI高效完成写作提纲

AI变革力量&#xff1a;未来数据中心的智能化之旅&#xff01; 在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;在众多领域展现出了它的能力&#xff0c;特别是在写作领域。AI写作工具不仅能够帮助我们高效地生成内容&#xff0c;还能在一定程度上提升…

利用弱监督定位的高分辨率乳腺癌筛查图像的可解释分类器

标准筛查乳房 X 光检查由每个乳房的两张高分辨率 X 射线组成&#xff0c;分别从侧面&#xff08;“中外侧”或 MLO 视图&#xff09;和上方&#xff08;“头尾”或 CC 视图&#xff09;拍摄&#xff0c;总共四张图像。 乳房X光照片的分辨率非常高&#xff0c;而大多数无症状癌症…

WebGL异步绘制多点

异步绘制线段 1.先画一个点 2.一秒钟后&#xff0c;在左下角画一个点 3.两秒钟后&#xff0c;我再画一条线段 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

[2024年4月最新]Python安装教程

一、Python下载 1、进入Python官网 官网地址&#xff1a;https://www.python.org 2、点击【Downloads】展开后点击【Windows】跳转到下载python版本页面&#xff0c;选择"Stable Releases"稳定版本&#xff0c;我下载的是Python 3.10.10版本&#xff0c;所以找到【…

IDEA中无法保存设置 Cannot Save Settings

确定原因: 在IDEA中父工程不应该存在有子工程的相关东西 首先,这是我的DCYJ项目(观察右侧的Content Root) 其次,这是我的EAPOFode项目(观察右侧的Content Root爆红处) 最后我将DCYJ项目右侧的Content Root全部删掉

共享单车到底是什么通信原理

我们经常骑的共享单车到底是什么通信原理&#xff0c;有人了解过吗&#xff1f; 一、智能车锁 共享单车最核心的硬件是智能车锁&#xff0c;主要用于实现控制和定位功能。 车锁内集成了嵌入式芯片&#xff08;通信模块&#xff09;&#xff0c;GPS模块和物联网SIM卡。 智能锁制…

DP例题详解(二)最短编辑距离和编辑距离

902. 最短编辑距离 - AcWing题库 #include<bits/stdc.h>using namespace std;const int N1010;int n,m; char a[N],b[N]; int f[N][N];int main() {cin>>n>>a1;cin>>m>>b1;for(int i0;i<m;i)f[0][i]i;for(int i0;i<n;i)f[i][0]i;//先初始化…

用户状态保持机制-Session

0、业务需求 会话&#xff1a;web应用中的会话是指一个客户端浏览器和服务器之间连续发生的一系列请求和响应的过程。 会话状态&#xff1a;web应用中的会话状态是指web服务器与浏览器在会话过程中产生的状态信息&#xff0c;借助会话状态&#xff0c;服务器能够把属于同一会话…

线性表概念及实现1

文章目录 前言一、线性表1.定义2.特点3.一般线性表的抽象数据类型定义 二、线性表的顺序存储&#xff08;顺序表&#xff09;1.基本概念2.数组实现顺序表3.顺序表中基本操作的具体实现 总结 前言 T_T此专栏用于记录数据结构及算法的&#xff08;痛苦&#xff09;学习历程&#…

纯小白蓝桥杯备赛笔记--DAY14(计算几何)

文章目录 计算几何基础平面几何距离圆的周长和面积圆与圆之间的关系&#xff1a;海伦公式计算三角形面积点到直线的距离 点积和叉积例题&#xff1a; 点和线的关系点的表示形式和代码判断点在直线的那边点到线的垂足点到线的距离例题-1242例题-1240升级--点到线段的距离--1285 …

指定世界TOP名校|医学研究学者公派美国麻省理工学院做博士后

W医生公派博士后条件为&#xff1a;世界TOP100的知名高校&#xff0c;研究方向相符且前沿。最终我们用世界顶级高校-美国麻省理工学院&#xff08;MIT&#xff09;的博士后邀请函助其获得单位资助&#xff0c;顺利通过签证并出国。 W医生背景&#xff1a; 申请类型&#xff1a…

LC 501.二叉搜索树中的众数

501.二叉搜索树中的众数 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 …

全国贫困县DID数据(2008-2022年)

数据来源&#xff1a;国W院扶贫开发领导小组办公室 时间跨度&#xff1a;2008-2022年 数据范围&#xff1a;各县域 数据指标 年份 县域名称 所属地市 所属省份 县域代码 是否贫困县(是为1&#xff0c;否为0) 参考文献&#xff1a; [1]马雯嘉,吴茂祯.从全面脱贫到乡村振兴…

VQ-BeT: Behavior Generation with Latent Actions 代码复现(Mujoco 安装)

代码地址&#xff1a;https://github.com/jayLEE0301/vq_bet_official.git 创建环境 conda create -n vq-bet python3.9 conda activate vq-bet拉取库 git clone https://github.com/jayLEE0301/vq_bet_official.git export PROJ_ROOT$(pwd)安装pytorch conda install pyto…