包括花很长时间加载,你可以看到他们加载
Includes taking a long time to load and you can see them loading
我将一个HTML文件包含在另一个HTML文件中,作为重用标题和导航生成逻辑的一种方式。
问题是,当我浏览到网站上的页面时,我可以看到不是的HTML首先包含在include文件加载中。只有这样你才能看到菜单和横幅加载之后。我希望所有的东西都能同时加载。这是渲染后的HTML。
下面的代码片段展示了我是如何生成这些页面的:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="assets/js/jquery-2.1.3.min.js"></script>
<script>
$(function(){
$("#includeHeader").load("includes/templates/header.html");
$("#includeNavigation").load("includes/templates/navigation.html");
});
</script>
<div id="includeHeader"></div>
</head>
<body>
<div id="wrapper">
<!-- Navigation -->
<div id="includeNavigation"></div>
我目前正在与代码一起工作,试图将任何外部库/CSS移动到页面底部,而不是在标题中。但到目前为止,这并没有真正改变或改进任何东西。
您应该使用其中一种模板语言。
如果你的include是简单的HTML文件,那么你可以使用Handlebars或Dust -你可以只是复制你的代码,然后在Javascript中你只需要渲染这些模板-见文档
您可以使用Jade/Pug代替,但它的语法与HTML不同,所以这不仅仅是复制粘贴的问题。
您正在使用$(handler)
来加载它们,这是$.ready()
的表单。所以在加载header.html
和navigation.html
之前,它等待文档加载所有内容。
试
<head>
<script src="assets/js/jquery-2.1.3.min.js"></script>
</head>
<body>
<div id="includeHeader"></div>
<script>
$("#includeHeader").load("includes/templates/header.html");
$("#includeNavigation").load("includes/templates/navigation.html");
</script>
</body>
您的问题是加载函数直到文档才运行。Ready事件已触发。这可能是在页面开始呈现之后。为了让所有内容同时显示,您可以使用.load的回调来显示所有内容。所以一切都被隐藏了,
$( "#result" ).load( "ajax/test.html", function() {
/// show your stuff
});
你当然需要知道两者都已加载。
我建议不要使用javascript从静态路径呈现HTML,而应该使用服务器端lang来代替,以提高速度。
我认为它使一些水平快,它不等待加载所有dom元素,我考虑#includeNavigation
元素在#includeHeader
元素
<head>
<script src="assets/js/jquery-2.1.3.min.js"></script>
</head>
<body>
<div id="includeHeader"></div>
<script>
$("#includeHeader").load("includes/templates/header.html", function(data){
console.log("header loaded");
$("#includeNavigation").load("includes/templates/navigation.html", function(data){
console.log("navigation loaded");
});
});
</script>
</body>
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 在卸载时注销用户时,他们也会在重新加载时注销
- 在初始页面加载时启动计时器.如果他们离开和返回,必须从第一次装载开始计数
- 显示图像时,他们完全加载
- 我如何加载javascript模板与他们的id
- 哪些JavaScript框架目前支持用RequireJS加载他们的模块
- HTML元素加载,即使他们没有附加到DOM?那么主干视图呢?
- 不要显示社交按钮(通过jquery加载),直到他们都完全加载
- 随机图片与链接加载,不加载他们所有
- Extjs保存动态选项卡和渲染他们回到页面加载,是可能的
- 我应该只加载javascript模块时需要,也如果他们是非常小
- 包括花很长时间加载,你可以看到他们加载
- 修改远程javascript,因为他们加载CefSharp