javascript - 缓慢的javascript加载html文件

标签 javascript jquery html css twitter-bootstrap

这是我第一次写网页,我想在我写的每个页面中包含“页眉”文件、“导航栏”文件和“页脚”文件。

有人建议使用类似的东西:

<script>
$(function(){
    $("#header").load("header.html");
    $("#navbar").load("navbar.html");
    $("#footer").load("footer.html");
});
</script>

然后只需使用 <div id="header"></div>代替我的 ~20 行标题文本,只需将该文本放在头文件中。这样,此 header 会更改一次,所有页面都会反射(reflect)更改。

但是,我注意到,当我加载此文件时,并没有对页面中的 header 进行硬编码,而是对导航栏/ header /等进行了瞬间处理。加载。有什么办法可以加快速度吗?

最佳答案

我同意@ceejayoz 的评论。仅仅因为某些事情是可能的,并不意味着它应该那样做。

你看到加载页眉/页脚延迟的原因是因为你是

  • 发送单独的 http 请求以加载模板,以及
  • 请求是异步,这实际上意味着,浏览器将继续呈现页面的其余部分,直到它获得完整的 header.html

根据您的网络速度,此延迟可能从几毫秒到几秒不等。

如果您想在客户端上为单独的 UI 组件(页眉/页脚/主要内容)保留不同的 View (在不同的文件中),我建议使用一些 SPA 框架(angularjs/ Ember )

服务器端,您可以使用 php 并做类似的事情

<?php include('header.html') ?>
<?php include('body.html') ?>
<?php include('footer.html') ?>

或各种模板引擎来实现相同的目的。

正如@ceejayoz 所说,服务器端模板会更快的原因是:

  • 它不会涉及 HTTP 请求并且
  • 它不必等待页面完成加载。它会首先呈现所有模板并将编译后的页面发送到浏览器

关于javascript - 缓慢的javascript加载html文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371510/

相关文章:

javascript - 使用 JQuery 添加 css 属性悬停

html - 从 url 中删除 index.html

javascript - 单击展开一个div并缩小另一个div并在再次单击后恢复正常

javascript - 使用 jQuery/JS 上下切换 DIV 元素

Jquery html 不工作不知道为什么?

javascript - 使用chart.js在 donut chart 中心的事件处理程序

html - CSS 列和边距问题

javascript - 未捕获的类型错误 : Cannot read property 'width' of null

javascript - forms.$valid 显示 true,但打印为 false

javascript - notifyjs - 隐藏来自其他地方的通知