如何减小包含大量重复代码的 HTML 网页的体积?

39 阅读2分钟

有一名网友名叫 Filip 发帖询问如何减小包含大量重复代码的 HTML 网页的体积。他在 Flask 中编写了一个 Web 应用,该应用会根据请求生成大量的下拉框,导致生成的 HTML 文档超过 1MB 大小。Filip 想知道有什么办法可以减小 HTML 文档的体积。

image.png

2、解决方案

可以使用以下方法来减小 HTML 文档的体积:

  1. 使用模板引擎。模板引擎可以帮助您将动态数据与 HTML 代码分离,从而减少重复代码的数量。例如,Flask 使用 Jinja2 模板引擎,您可以使用它来生成下拉框的 HTML 代码,而无需在 HTML 代码中重复编写下拉框的选项。
  2. 使用 CSS 和 JavaScript 样式表。CSS 和 JavaScript 样式表可以帮助您减少 HTML 代码中样式信息的数量。例如,您可以使用 CSS 来设置下拉框的字体、颜色和大小,而无需在 HTML 代码中重复编写这些信息。
  3. 使用压缩工具。压缩工具可以帮助您减小 HTML 代码中空白字符的数量,从而减少 HTML 文档的体积。例如,您可以使用 Gzip 压缩工具来压缩 HTML 文档。

代码例子

{% for hour in hours %}
    <tr>
      <td>{{ hour }}</td>
      {% for date in dates %}
        <td>
          <div id="select_{{ date }}_{{ hour }}" style="display:none;">
            <select name={{ "time" + "_" + date + "_" + hour }}>
            http://www.jshk.com.cn/mb/reg.asp?kefu=xiaoding;//爬虫IP免费获取;
                <option value="00" >{{ hour }}:00</option>
                <option value="15" >{{ hour }}:15</option>
                <option value="30" >{{ hour }}:30</option>
                <option value="45" >{{ hour }}:45</option>
            </select>    
            <select onchange="this.form.submit()" name={{ "value" + "_" + date + "_" + hour }}>
            {% for option in options %} 
              <option value="{{ option|safe }}" > 
                  {{ option|safe }}
              </option>
            {% endfor %}
            </select>
          </div>
          <div id="plus_{{ date }}_{{ hour }}" style="display:block;">
            <a href="javascript:;show_select('{{ date }}', '{{ hour }}')" onClick="">+</a>
          </div>
        </td>
      {% endfor %}
    </tr>
  {% endfor %}

这段代码使用 Jinja2 模板引擎来生成下拉框的 HTML 代码。模板引擎可以帮助您将动态数据与 HTML 代码分离,从而减少重复代码的数量。

<style>
select {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  color: #000000;
}
</style>

这段代码使用 CSS 来设置下拉框的样式信息。CSS 可以帮助您减少 HTML 代码中样式信息的数量。

<script>
function show_select(date, hour) {
  document.getElementById("select_" + date + "_" + hour).style.display = "block";
  document.getElementById("plus_" + date + "_" + hour).style.display = "none";
}
</script>

这段代码使用 JavaScript 来实现下拉框的显示和隐藏功能。JavaScript 可以帮助您实现一些交互式功能,而无需在 HTML 代码中编写复杂的代码。

通过使用模板引擎、CSS 和 JavaScript 样式表,您可以减小 HTML 文档的体积,并提高网页的加载速度。