首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不阻塞的情况下加载数据?

如何在不阻塞的情况下加载数据?
EN

Stack Overflow用户
提问于 2014-03-21 05:29:37
回答 2查看 68关注 0票数 0

我想从我的模板中的数据库中加载项目。这个加载过程可能需要几秒钟的时间,所以我希望在加载过程完成之前显示页面。

代码语言:javascript
运行
复制
{% for item in get_items() %}
    <div> ... </div>
{% end %}

如何在不阻塞页面的情况下加载此数据?

EN

回答 2

Stack Overflow用户

发布于 2014-03-21 05:52:14

最简单的方法是两个视图:绑定到URL的视图,它只显示实际数据的“包装器”,并在其中包含一个HTML元素,如下所示:

代码语言:javascript
运行
复制
<div id="my-content">(loading data)</div>

假设您使用的是jQuery,如下所示:

代码语言:javascript
运行
复制
<script>
    $("#my-content").load("/path/to/view/that/provides/data");
</script>

然后将第二个视图连接到该URL。这应该只返回数据本身的格式化HTML (因此可能只返回该表,也可能只返回您所表示的表)。

当然,您也可以不通过让第二个视图提供格式化的HTML来做到这一点;您可以让它生成JSON或XML或更多的data-y格式,然后用Javascript对其进行格式化。在某些情况下,这可能会更有效率。

如果您没有使用jQuery,请查看如何在您使用的任何框架中执行简单的“用通过AJAX完成的此URL的响应填充此项目”调用--或者您也可以在原始Javascript中执行此操作,尽管有点冗长。

票数 0
EN

Stack Overflow用户

发布于 2014-03-21 05:39:42

加载不带它们的页面,然后通过单独的Ajax调用添加它们。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22545505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档