减少HTML页面的大小,包含大量重复代码

时间:2014-02-23 20:22:47

标签: javascript python html flask

Noob在这里提问,但我在其他地方找不到合适的答案。我有一个在Flask中编写的webapp,根据请求生成大量的选择框,其中包含以下代码:

  {% 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 }}>
              <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 %}

其中dateshours显然是包含日期和小时的列表,options是包含大量选项的列表。总而言之,我的HTML文档最终大小超过1 MB。如果我想减小这个尺寸,我有什么选择?

谢谢, 菲利普

1 个答案:

答案 0 :(得分:0)

您可以将此模板转换为某些JavaScript代码并重复执行document.write或设置不同元素的innerhtml属性。在HTML5中,您可以使用template tag。模板支持由许多库提供,例如jquery,mustache等,可能使用上述技术实现。