`
androider
  • 浏览: 748384 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Asynchronous innerHTML

阅读更多
A recent question on Stack Overflow posed a common question concerning DOM insertion and specifically the dire performance of IE6 when using innerHTML to parse a large amount of HTML markup. Head over there to read the question for yourself. I thought it worth sharing my solution; an asynchronous function to add large quantities of HTML to a page without locking up the browser:

function asyncInnerHTML(HTML, callback) {
    var temp = document.createElement('div'),
        frag = document.createDocumentFragment();
    temp.innerHTML = HTML;
    (function(){
        if(temp.firstChild){
            frag.appendChild(temp.firstChild);
            setTimeout(arguments.callee, 0);
        } else {
            callback(frag);
        }
    })();
}

The large amount of HTML, on its own, is no problem; it’s adding it to the DOM which creates a delay. To avoid this, the HTML is first added to an outside-of-DOM div, the child nodes of which are then recursively added to a document fragment. The fragment is passed to the callback for insertion - or whatever else you may want to do.
The timeout of zero is just to let the browser catch a breath before continuing; doing so means that the user can continue to interact with the page while this all occurs.
Here’s an example:
var htmlStr = '<div><p>...</p><p>...</p><div><div>...</div>';
asyncInnerHTML(htmlStr, function(fragment){
    // You can treat 'fragment' as a regular node.
    document.body.appendChild(fragment);
});
分享到:
评论

相关推荐

    javascript 异步的innerHTML使用分析

    如今,另一种更奇特的技术Asynchronous innerHTML又被开发出来了,不能不赞一下外国人在这方面研究是非常超前的。 代码如下: function asyncInnerHTML(HTML, callback) { var temp = document.createElement(‘div’...

    Ajax技术开发指南 AJAX(Asynchronous JavaScript and XML)是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。

    JavaScript提供了操作DOM的方法,如`createElement`、`appendChild`和`innerHTML`等,用于动态修改页面内容。 ### 5. JSONP(JSON with Padding) 跨域问题限制了Ajax的使用范围,而JSONP提供了一种绕过同源策略的...

    叠加-带有来自类型转换会话的内联JavaScript innerhtml

    在涉及.NET、C#或ASP.NET的上下文中,JavaScript通常与服务器端编程语言协同工作,实现异步操作,如AJAX(Asynchronous JavaScript and XML)。通过AJAX,可以在不刷新整个页面的情况下向服务器发送请求并接收响应,...

    Ajax使用总结

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页内容的技术。这个技术的出现极大地提升了用户体验,因为它允许用户在与服务器进行交互时保持页面的可操作性和...

    Simple_asynchronous_filter:一个简单的使用ajax的异步过滤器

    这可能涉及使用DOM操作(如`innerHTML`、`appendChild`等)或者利用模板引擎(如Handlebars、Mustache等)来动态渲染HTML。 6. **错误处理**:为了提高应用的健壮性,需要处理可能的网络错误或服务器错误。Ajax请求...

    ajax中指定innerHTML时如何应用其中的SCRIPT的研究

    在Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于实现网页的部分刷新,提升用户体验。然而,在使用AJAX加载HTML内容并设置到DOM元素中时,如果这些HTML内容包含`&lt;script&gt;`标签,则会发现这些...

    js+ajax处理java后台返回的json对象循环创建到表格的方法.docx

    在 Web 开发中,前后端分离已经成为一种趋势,其中 AJAX(Asynchronous JavaScript and XML)技术被广泛应用于实现前后端的数据交互。本文将详细介绍如何利用 JavaScript 和 AJAX 技术处理 Java 后台返回的 JSON ...

    ajax作业改.docx

    AJAX(Asynchronous JavaScript and XML)允许我们在不刷新整个页面的情况下,从后台获取并处理数据,从而提升用户体验。下面将详细阐述实现这个作业所需的技术和步骤。 首先,我们需要了解AJAX的基本工作原理。它...

    基于javascript,ajax,json的在前端动态显示你的任何表格数据

    Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。在JavaScript中,我们通常使用XMLHttpRequest对象或者更现代的fetch API...

    基于AdminLTE(bootstrap)用JS实现的局部刷新的案例

    Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,通过在后台与服务器进行少量数据交换,可以在不重新加载整个网页的情况下更新部分网页内容。在这个案例中,我们可能会用到jQuery库,它是...

    Ajax实例 struts javascript

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。这个技术结合了JavaScript、XML、HTML和DOM等Web开发技术,提高了用户体验,使得用户...

    JSON学习笔记

    JSON通常用于AJAX(Asynchronous JavaScript and XML)应用程序,以高效地传输和处理数据。 在JSON中,数据以键值对的形式存在,也就是名称/值对。名称用双引号包围,后跟一个冒号,然后是对应的值。例如,...

    jQueryPost页面不能刷新

    7. **AJAX与页面刷新**:AJAX(Asynchronous JavaScript and XML)技术,包括`$.post`,其核心理念就是实现页面的部分刷新,而不是整个页面的刷新,这有助于提升用户体验。因此,除非明确调用了`location.reload()`...

    ajax获取单独页面

    Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON等格式传输数据,提升了用户体验,使得...

    ajax 10秒自动变换数据无刷新页面

    Ajax(Asynchronous JavaScript and XML)是一种在后台与服务器进行少量数据交换的技术,使得网页可以在不重新加载整个页面的情况下更新部分内容。这里的"自动刷新"是指通过定时器(如JavaScript的`setInterval`函数...

    ajax最简单例子

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这种技术可以提升用户体验,因为...

    Ajax提交验证

    在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于实现网页的异步更新,使得用户可以在不重新加载整个页面的情况下与服务器进行数据交互。这种方式大大提升了用户体验,同时也提高了应用...

    北京中科信软AJAX培训

    AJAX技术,全称为Asynchronous JavaScript and XML,是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。通过AJAX,Web应用程序可以快速地将数据异步地从服务器交换到客户端,从而实现与用户的即时互动...

    动态内嵌的小模块

    Ajax(Asynchronous JavaScript and XML)的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行通信,从而实现实时更新。在实现动态内嵌模块时,我们首先会在JavaScript中创建一个XMLHttpRequest对象,...

Global site tag (gtag.js) - Google Analytics