Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不阻塞的情况下加载数据?_Javascript_Jquery_Django_Tornado_Template Engine - Fatal编程技术网

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

Javascript 如何在不阻塞的情况下加载数据?,javascript,jquery,django,tornado,template-engine,Javascript,Jquery,Django,Tornado,Template Engine,我想从模板中的数据库加载项目。这个加载过程可能需要几秒钟的时间,因此我希望在加载过程完成之前显示页面 {% for item in get_items() %} <div> ... </div> {% end %} 如何在不阻塞页面的情况下加载这些数据?在不使用它们的情况下加载页面,然后通过单独的Ajax调用将它们添加进来。最简单的方法是两个视图:绑定到URL的视图,该视图仅显示实际数据周围的包装,其中包含HTML元素,如: <div id="my-con

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

{% for item in get_items() %}
    <div> ... </div>
{% end %}

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

在不使用它们的情况下加载页面,然后通过单独的Ajax调用将它们添加进来。

最简单的方法是两个视图:绑定到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中完成此操作,尽管要更详细一些。

uhm。。谁将生成模板?这不行吗?