【问题标题】:How to prevent caching of my Javascript in django template?如何防止在 django 模板中缓存我的 Javascript?
【发布时间】:2013-09-14 05:11:35
【问题描述】:

这是我的 javascript 函数:

<script>
   function text() {
      var i = new Array();
      {% for content in table %}
         i[{{content.id}}]= document.getElementById('checkbox{{content.id}}').checked;
      {% endfor %}

      return i;
   }
</script>

如您所见,我在其中有一些 django 模板代码。如何防止缓存我的脚本?

我看到了this,但它没有解决我的问题!

【问题讨论】:

  • 这里到底缓存了什么?
  • i 的值。我有一个更新这个模板内容的 dajaxice 函数。问题是在 ajax 之后这个脚本被浏览器缓存但我想更新它。
  • 让我描述一下我有一个需要每 5 秒更新一次的目录,并且我有一个用于每个内容的选择框。问题是当用户在 ajax 之后选择此复选框之一时,此选择消失了。所以如果用户选择内容,我想使用 js 来处理这个问题。 js脚本在每次ajax渲染的模板中。

标签: javascript django django-templates browser-cache


【解决方案1】:

我不确定我是否理解正确,但据我所知,这与缓存无关:这是一个了解何时呈现模板与何时执行脚本的问题。

此脚本包含在模板中。该模板在服务器端呈现。因此,将生成脚本 - 并将其发送到浏览器 - 其值为 content,因为它们当时

如果您有一个稍后会更新 HTML 页面中的某些内容的 Ajax 函数,则此脚本根本不会关心,因为您没有进行任何更新 - 再次,当模板创建时,脚本中的值是硬编码的发送到浏览器。

您可能根本不想这样做。相反,您应该找到或定义一个包含所有复选框的父元素 - 例如,一个 div 或表格行 - 然后动态迭代该元素的所有后代以查找任何复选框的值。然后,您可以从您的 Ajax 函数调用此脚本,以在内容更改时更新值。

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多