首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Javascript渲染HTML的策略

用Javascript渲染HTML的策略
EN

Stack Overflow用户
提问于 2010-06-29 21:47:43
回答 5查看 4.3K关注 0票数 3

我通过AJAX调用从服务器获取一个庞大的JSON数组,然后对其进行处理并使用Javascript呈现HTML。我想要的是让它尽可能快。

在我的测试中,Chrome领先于FF,但浏览器渲染大约300条记录仍然需要5-8秒。

我考虑过延迟加载,例如在Google Reader中实现的延迟加载,但这与我的其他用例不一致,例如能够获得即时搜索结果(在客户端对我们在JSON数组中获得的所有记录执行简单搜索)和多个过滤器。

我注意到的一件事是,FF和Chrome在循环遍历JSON数组中的所有项之前都不会呈现任何内容,即使我在每次循环之后都显式地将新创建的元素插入到DOM中(只要我有了HTML)。我想要实现的就是:强制浏览器尽快渲染。

我尝试推迟调用(数组中的每一项都将由延迟函数处理),但遇到了额外的问题,因为似乎不再保证执行的顺序(数组中较低的一些项将在其他项之前处理)。

我在这里寻找任何提示和技巧。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-30 01:13:28

尝试:

  • 将行推入数组,然后简单地

el.innerHTML = array.join("");

  • use document fragments

var frag = document.createDocumentFragment();for (循环){ frag.appendChild( el );} parent.appendChild( frag );

票数 1
EN

Stack Overflow用户

发布于 2010-06-29 21:58:01

如果不需要一次显示所有300条记录,可以尝试一次对它们分页30或50条记录,并且只展开JSON数组,因为这些子部分需要通过分页器或本地搜索框显示。转换后,您可以缓存内容,以便在用户上下浏览页面时进行后续显示。

票数 1
EN

Stack Overflow用户

发布于 2010-06-29 21:51:57

尝试在分离的DOM节点或文档片段中创建元素,然后一次性附加所有内容。

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

https://stackoverflow.com/questions/3141284

复制
相关文章

相似问题

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