我想从我的模板中的数据库中加载项目。这个加载过程可能需要几秒钟的时间,所以我希望在加载过程完成之前显示页面。
{% for item in get_items() %}
<div> ... </div>
{% end %}
如何在不阻塞页面的情况下加载此数据?
发布于 2014-03-21 05:52:14
最简单的方法是两个视图:绑定到URL的视图,它只显示实际数据的“包装器”,并在其中包含一个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或更多的data-y格式,然后用Javascript对其进行格式化。在某些情况下,这可能会更有效率。
如果您没有使用jQuery,请查看如何在您使用的任何框架中执行简单的“用通过AJAX完成的此URL的响应填充此项目”调用--或者您也可以在原始Javascript中执行此操作,尽管有点冗长。
发布于 2014-03-21 05:39:42
加载不带它们的页面,然后通过单独的Ajax调用添加它们。
https://stackoverflow.com/questions/22545505
复制相似问题