我目前正在从我的视图中获取一个对象,并以表格的形式将其显示在模板中。目前,我很震惊我们需要刷新表/ div的部分,而不刷新页面。
在我的views.py
中def foo(request):
testruns......
render_to_response('pages/bar.html', locals(), context_instance=RequestContext(request))
我的bar.html(模板)
<div id = "roman">
{% for trun in testruns %}
<tr>
<td>{{ trun.testprofile }}</td>
<td>{{ trun.time }}</td>
<td>{{ trun.testresult }}</td>
<td>{{ trun.state }}</td>
</tr>
{% endfor %}
</div>
有两种方法可行:
使用[Jquery]
$.ajax({
url: '{% url myview %}',
success: function(data) {
$('#the-div-that-should-be-refreshed').html(data);
}
});
我想知道哪种方法更适合我的情况。使用方法2,表格会自动刷新,我们如何设置刷新时间?
答案 0 :(得分:0)
第二种方法的可接受但缺点(从django拉表作为html):
通过网络传输的数据要大得多
如果您在表格中使用基于javascript的组件(也许 基于dojo的按钮等)他们可能会遇到一些问题。我曾有一个 dojo中的smilar问题,我在make dojo reparse中找到了解决方案 应用的html。但是,每次生活都不容易 方法更好。
答案 1 :(得分:0)
如果这只是您需要自动刷新的地方,您的方法2应该与设置计时器一起进行自动刷新。您可以将setInterval
功能用于此目的:
// Refresh the Table every 5 seconds
setInterval(function(){
$.ajax({
url: '{% url myview %}',
success: function(data) {
$('#the-div-that-should-be-refreshed').html(data);
}
});
}, 5000)
但是如果您计划开发一个响应式网页,整个用户界面需要保持更新,那么我建议使用像ember.js这样的完整框架