jquery - Django Ajax/Jquery 在计时器上刷新 DIV 元素

标签 jquery python ajax django

我有一个 Django 项目,我正在尝试在其上实现 ajax。这个想法是数据库中有一个警报列表(每 5 秒左右从外部更新一次)。

由于数据库是自动更新的,所以我想要实现的是每 10 秒左右刷新一次的页面元素以显示新信息(而不是刷新整个页面)。这已经适用于页面刷新或元刷新(eww..)

这是我到目前为止所开始的,我引用了以下我用来尝试帮助我的 Stackoverflow 问题。

Refresh a div to shows new rating in Django using JQuery and AJAX

Refresh a div in Django using JQuery and AJAX

我这几天一直在兜圈子,一无所获,所以非常感谢您的帮助。

index.html

<div id="right">
{% include 'alarmviewer/alarms.html' %}
</div>

alarms.html

Theres alot more in this one, but I didn't include it as it didn't seem necessary. It works without the ajax.
<div class="alarmsheader">.....</div>

urls.py

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^alarms/$', views.alarms, name='alarms'),
)

views.py

def alarms(request):
latest_alarm_list = ActiveAlarmsSimple.objects.order_by('severity')[:1000]
active_alarm_list = ActiveAlarmsCount.objects.order_by('-active_alarms')[:1]
return render_to_response('alarmviewer/alarms.html', {'latest_alarm_list':     latest_alarm_list,'active_alarm_list': active_alarm_list,})

script.js

function refresh() {
  $.ajax({
  url: "{% url 'alarmviewer:alarms' %}",
  success: function(data) {
    $('#right').html(data);
  }
 });
};


$(document).ready(function ($) {
  refresh();
  var int = setInterval("refresh()", 3000);

只是一个注释。无需实现 ajax,这一切都可以正常工作。手动或使用元标记每 5 秒刷新一次页面是可行的。我刚刚在运行服务器时收到错误

[2015年1月19日11:38:22]“GET/alarmviewer/%7B%%20url%20%27alarmviewer:逻辑%27%20%%7D HTTP/1.1”404 2936

我认为这意味着我的views.py或Urls.py有问题,因为它似乎无法找到它应该刷新的alarms.html页面。

感谢您的帮助!

最佳答案

您将需要 "{% url 'alarmviewer:alarms' %}"使用 Django 渲染时位于 HTML 文档中的某个位置,而不是位于 js 文件中。

尝试在 <script>Your script here</script> 之间包含 javascript在 HTML 模板中或在 HTML 模板中定义全局变量:

<script> var ALARM_URL = "{% url 'alarmviewer:alarms' %}"; </script>

然后将你的ajax调用url更改为url: ALARM_URL 。希望这会有所帮助。

关于jquery - Django Ajax/Jquery 在计时器上刷新 DIV 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015865/

相关文章:

javascript - 如何在 div 滚动到 View 中时自动重复高度和宽度变化?

Javascript 复杂的追加和更新 DOM,因此可以使用remove() 删除它;

python - 通过在 numpy 中设置一些条件来检索元素的位置

用于递归搜索 FTP 特定文件名且超过 24 小时的 python 脚本

ajax - Firefox 不会发送跨域资源共享预检?

javascript - 如何显示在输入类型文件中选择了哪个文件?

java - jQuery 网络摄像头刷新。等待请求完成

Python成语链接(展平)有限迭代的无限迭代?

javascript - 使用 AJAX 和 PHP 登录时获取用户配置文件

jquery - Ajax 调用未绑定(bind)所有模型属性