Javascript 清新<;部门>;在django中,但自动刷新整个模板

Javascript 清新<;部门>;在django中,但自动刷新整个模板,javascript,jquery,ajax,django,refresh,Javascript,Jquery,Ajax,Django,Refresh,我使用来自Wi-Fi模块的POST请求将对象添加到我的模型中。它存储来自不同传感器的数据。每隔5秒定期发送数据。为了显示这些数据,我创建了一个页面。我不希望整个页面刷新,因为不同的div在不同的时间获取数据。我想要实现的是,某些div要定期刷新,比如说10秒,并获取更新的数据 我创建了一个测试模板来测试自动刷新部件。 到目前为止,我已经做到了这一点: URL.py: urlpatterns = [ url(r'^test/', views.test, name='test'), ] vie

我使用来自Wi-Fi模块的POST请求将对象添加到我的模型中。它存储来自不同传感器的数据。每隔5秒定期发送数据。为了显示这些数据,我创建了一个页面。我不希望整个页面刷新,因为不同的div在不同的时间获取数据。我想要实现的是,某些div要定期刷新,比如说10秒,并获取更新的数据

我创建了一个测试模板来测试自动刷新部件。 到目前为止,我已经做到了这一点:

URL.py:

urlpatterns = [
  url(r'^test/', views.test, name='test'),
]
views.py:

def test(request):
    acc_list = AccModel.objects.order_by('-updated')[:10]
    gps_list = GpsModel.objects.order_by('-updated')[:1]
    obj_dict = {'accVal': acc_list, 'gpsVal': gps_list}
    return render(request, 'appTwo/test.html', context=obj_dict)
模板文件(test.html):(我只想用id=“test”自动刷新div)


函数刷新(){
$.ajax({
url:“{%url”测试“%}”,
成功:功能(数据){
$('测试')。替换为($('测试',数据));
}
});
}
$(函数(){
setInterval('refresh()',10000);
});
{%if accVal%}
{{accVal}}
{%endif%}
{%if gpsVal%}
{{gpsVal.0.latValue}
{%endif%}
我的谷歌地图演示
GMAPSJS。。
当我运行上述代码时,“test”div在第一个 自动刷新

我也尝试过这些方法:

只需发布js部分:

<script type="text/javascript">
        function refresh() {
    $.ajax({
        url: "{% url 'test' %}",
        success: function(data) {
            $('#test').replaceWith($('#test',data)); // NOTE this
        }
    });
}
var seconds = 3; // seconds, edit here
setInterval(refresh(),seconds * 1000);
    </script>

函数刷新(){
$.ajax({
url:“{%url'测试“%}”,
成功:功能(数据){
$('#test')。替换为($('#test',data));//注意这一点
}
});
}
var秒数=3;//秒,在这里编辑
设置间隔(刷新(),秒*1000);
我收到两个get请求,“test”div在几秒钟内消失

我得到的最接近的结果是:

<script type="text/javascript">
        function refresh() {
            $.ajax({
                url: '{% url 'test' %}',
                success: function (data) {
                    $('#test').replaceWith($('#test'), data);
                }
            });

        }

        $(function () {
            setInterval('refresh()', 10000);
        });
    </script>

函数刷新(){
$.ajax({
url:“{%url”测试“%}”,
成功:功能(数据){
$('test')。替换为($('test'),数据);
}
});
}
$(函数(){
setInterval('refresh()',10000);
});
在这种情况下,我每10秒收到一次“get”请求。以及“测试”div 不会消失。但是,即使模型对象中的值为 更改后,此处的值保持不变

要做到这一点,请在特定时间后连续刷新页面。 要替换目标div,请使用
replaceWith()


通过使用
$(…)
可以在加载文档后立即刷新。
setTimeout(refresh,10000)
应该在外部调用,以给它一定的延迟。@WillemVanOnsem My bad!!谢谢你的更正!现在明白了:)我可能错了,但这不是URL的问题吗?我的意思是ajax正在调用呈现我的完整视图的url。如果这是真的,那么如何获得id='test'的特定div的url呢?
<script type="text/javascript">
        function refresh() {
            $.ajax({
                url: '{% url 'test' %}',
                success: function (data) {
                    $('#test').replaceWith($('#test'), data);
                }
            });

        }

        $(function () {
            setInterval('refresh()', 10000);
        });
    </script>
function refresh() {
    $.ajax({
        url: "{% url 'test' %}",
        success: function(data) {
            $('#test').replaceWith($('#test',data)); // NOTE this
        }
    });
}
var seconds = 3; // seconds, edit here
setInterval(refresh(),seconds * 1000);