我想在模板中加载数据库中的项目。这个加载过程可能需要几秒钟,所以我想在过程完成之前显示页面。
{% for item in get_items() %}
<div> ... </div>
{% end %}
如何在不阻止页面的情况下加载此数据?
答案 0 :(得分:0)
最简单的方法是两种观点:与您的网址绑定的视图,该网址只显示&#34;包装&#34;围绕您的实际数据并在其中包含HTML元素:
<div id="my-content">(loading data)</div>
并且,假设您使用jQuery,例如:
<script>
$("#my-content").load("/path/to/view/that/provides/data");
</script>
然后将第二个视图连接到该URL。这应该返回只是数据本身的格式化HTML(所以可能只是那个表,或者你正在呈现它)。
当然,您也可以通过让第二个视图提供格式化HTML来实现此目的;您可以使用它生成JSON或XML或更多数据格式,然后使用Javascript格式化 。对于某些情况,这可能更有效。
如果你不使用jQuery,请查看如何做一个简单的&#34;用这个URL的响应来填充这个项目,通过AJAX&#34;在你使用的任何框架中调用 - 或者你也可以在原始的Javascript中执行此操作,尽管有点冗长。
答案 1 :(得分:-1)
加载没有它们的页面,然后通过单独的Ajax调用添加它们。