Javascript 清新<;部门>;在django中,但自动刷新整个模板
我使用来自Wi-Fi模块的POST请求将对象添加到我的模型中。它存储来自不同传感器的数据。每隔5秒定期发送数据。为了显示这些数据,我创建了一个页面。我不希望整个页面刷新,因为不同的div在不同的时间获取数据。我想要实现的是,某些div要定期刷新,比如说10秒,并获取更新的数据 我创建了一个测试模板来测试自动刷新部件。 到目前为止,我已经做到了这一点: URL.py: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
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);