首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Javascript添加的HTML与普通HTML标记的性能比较

通过Javascript添加的HTML与普通HTML标记的性能比较
EN

Stack Overflow用户
提问于 2010-03-03 10:51:35
回答 5查看 1.8K关注 0票数 0

有没有人测试过,或者有人知道,这两种不同的呈现相同html内容的方法的性能差异(除了一种导入了jquery库,另一种没有导入,Ajax版本中有两个请求相对于一个之外)?

通过Ajax添加

代码语言:javascript
运行
复制
<html>
<head>
    <script src="javascripts/jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
    jQuery.ajax({
        type: "GET",
        url: "http://www.mysite.com/events",
        success: function(result) {
            $("#container").append(result);
        }
    });
    </script>

    <body>
        <div id="container">
        </div>
    </body>
</html>

内联

代码语言:javascript
运行
复制
<html>
<head>
    <body>
        <div id="container">
            <!-- events -->
            <ol>
                <li>
                    <p>
                        Event A...
                    </p>
                </li>
            </ol>
        </div>
    </body>
</html>

这方面的统计数字是什么,你什么时候会和你不使用这样的东西?Ajax版本有多慢(比方说,如果我呈现像Amazon主页这样复杂的东西,假设我不必担心路径,因为这将是我自己的应用程序)?这个问题独立于可读性的最佳实践以及所有这些,只是想知道性能。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-04 07:58:43

在您的示例中,总体性能并不取决于$("#container").append(result);与内联HTML的呈现性能。HTTP请求的数量占主导地位。

在仅使用HTML的示例中,只发出一个HTTP请求,内容可以在下载前几块时立即开始呈现。

在JS示例中,浏览器开始加载HTML,然后到达第一个脚本标记,它必须下载、解析和执行jquery.js。然后它必须下载/events。只有在这两个HTTP请求完全完成之后,它才能开始呈现HTML。因此,在实践中,您的页面显示速度会慢得多。有关底部的脚本最小化http请求的更多信息,请参见性能规则。

票数 3
EN

Stack Overflow用户

发布于 2010-03-03 11:02:29

在你的例子中,这种差别是看不见的。然而,在Amazon风格的主页中,使用纯HTML版本作为基线,Ajax版本在任何地方都会慢一些,从几乎看不见的速度到数量级上的速度都会变慢。有许多变量会影响Ajax版本的速度(连接速度、浏览器的JavaScript引擎、被操纵的HTML的复杂性、Ajax调用的数量、JavaScript编写得有多好以及其他)。

有一个名为dynaTrace的好工具可以帮助您诊断Ajax瓶颈。火虫也有助于分析性能问题。

票数 1
EN

Stack Overflow用户

发布于 2010-03-03 11:07:38

在呈现方面,jQuery比普通的HTML慢。就像任何javascript DOM操作比普通HTML文件慢一样

但这不仅仅是渲染性能。一个花哨的HTML格式的大表可能要比一个紧凑的JSON数据查询需要更长的时间来下载,并且需要一点jQuery来格式化它。

仅仅通过AJAX获取一个普通的HTML片段将永远不会为您的下载时间带来任何好处。但是通常从用户的角度来看,它看起来更快,因为主页面结构加载得更快,然后细节就变得更充实了。

jQuery库是缓存的,因此每个会话只有一次或更少的开销。

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

https://stackoverflow.com/questions/2370505

复制
相关文章

相似问题

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