关于前端原生开发 页面组件化开发 html页面引入另一个html页面

我们在使用代码编程一个网站的时候,通常情况下头部和尾部是相同的,如果一个网站的每个页面都把这些代码写一遍,不仅浪费时间,还显得重复代码很多,所以此时把重复的页面单独摘出来,在用到的时候从外部直接引进去,就能节省很多时间,减少很多代码。

在这里,有好几种引入html文件的方式,不过每种都是有利有弊,需要根据需要自行选择
有大佬反馈解决了有些浏览器本地实现不了的问题:放到服务器上面!(感谢!!!)

link标签介绍

link标签通常放置在一个网页的头部标签head标签内的用于链接外部css文件、链接收藏夹图标(favicon.ico), 标签最常见的用途是链接外部样式表,外部资源。

//引入css样式
<link href="img/divcss5.css" rel="stylesheet" type="text/css" /> 
//ICO图标引人代码如下:
<link rel="icon" href="favicon.ico" type="image/x-icon" />  

方法一 使用import引入(《head》中引入文件,《script》中加载内容)

href链接引入的html文件,id可以看做页面引导,在script中用到

<head>
    <meta charset="utf-8" />
    <title>主页面</title>
    <!--import引入-->
    <link rel="import" href="top.html" id="page1"/>
    <link rel="import" href="fotter.html" id="page2"/>
</head>

<!--注意顺序-->
        <!--import在头部引入,里面是啥就是啥-->
        <script type="text/javascript">
            document.write(page1.import.body.innerHTML);
        </script>
        你好呀!    <!--本页面写入内容-->
        <script type="text/javascript">
            document.write(page2.import.body.innerHTML);
        </script>

在这里插入图片描述
由上图可以看出,import引入除开script标签,在其他html body中写入什么就引入什么,完全的内容格式.

方法二 JQ引入

<!--注意顺序-->
        <!--使用js引入,引入整个文档,但是没有html和body,相当于body里面的数据-->
        <div class="top"></div>
        <div class="center">
            <p>你好,我在中间!</p>
        </div>
        <div class="footer"></div>
        
        <script src="js/jq/jquery-3.2.1.min.js"></script>
        <script type="text/javascript">
            //在js中引入
            $(document).ready(function () {
                $('.top').load('top.html');
                $('.footer').load('fotter.html');
            });
        </script>

使用js引入,相当于把引入的html中head和body标签中的数据拖出来,在外面包了一个你自己写的标签,比如说上面代码中的

运行结果同import相同,这里不再展示

注意:是head和body标签中的数据,不带标签,下图是浏览器显示代码
在这里插入图片描述

方法三 include 引入(涉及到一个从网上扒的封装函数,下面有)(head和body标签中的数据直接引入)

<body>
        <!--include引入,顺序很重要-->
        <script src="js/include.js"></script>
        <include src="top.html"></include>
        <include src="center.html"></include>
        <div id="">
            <p>你没有看错,我在这!</p>
        </div>
        <include src="fotter.html"></include>
    </body>

在这里插入图片描述

include.js压缩代码:

(function(window,document,undefined){var Include39485748323=function(){};Include39485748323.prototype={forEach:function(array,callback){var size=array.length;for(var i=size-1;i>=0;i-=1){callback.apply(array[i],[i])}},getFilePath:function(){var curWwwPath=window.document.location.href;var pathName=window.document.location.pathname;var localhostPaht=curWwwPath.substring(0,curWwwPath.indexOf(pathName));var projectName=pathName.substring(0,pathName.substr(1).lastIndexOf('/')+1);return localhostPaht+projectName},getFileContent:function(url){var ie=navigator.userAgent.indexOf('MSIE')>0;var o=ie?new ActiveXObject('Microsoft.XMLHTTP'):new XMLHttpRequest();o.open('get',url,false);o.send(null);return o.responseText},parseNode:function(content){var objE=document.createElement("div");objE.innerHTML=content;return objE.childNodes},executeScript:function(content){var mac=/<script>([\s\S]*?)<\/script>/g;var r="";while(r=mac.exec(content)){eval(r[1])}},getHtml:function(content){var mac=/<script>([\s\S]*?)<\/script>/g;content.replace(mac,"");return content},getPrevCount:function(src){var mac=/\.\.\//g;var count=0;while(mac.exec(src)){count+=1}return count},getRequestUrl:function(filePath,src){if(/http:\/\//g.test(src)){return src}var prevCount=this.getPrevCount(src);while(prevCount--){filePath=filePath.substring(0,filePath.substr(1).lastIndexOf('/')+1)}return filePath+"/"+src.replace(/\.\.\//g,"")},replaceIncludeElements:function(){var $this=this;var filePath=$this.getFilePath();var includeTals=document.getElementsByTagName("include");this.forEach(includeTals,function(){var src=this.getAttribute("src");var content=$this.getFileContent($this.getRequestUrl(filePath,src));var parent=this.parentNode;var includeNodes=$this.parseNode($this.getHtml(content));var size=includeNodes.length;for(var i=0;i<size;i+=1){parent.insertBefore(includeNodes[0],this)}$this.executeScript(content);parent.removeChild(this);})}};window.onload=function(){new Include39485748323().replaceIncludeElements()}})(window,document);

方法四 object引入和iframe引入(带有滚动条,视情况使用)

<!--object引入,相当于把整个页面拉过来(在一个html中嵌套另一个html),包括title,meta,body,html等-->
<!--此处的高是嵌套进去的整个html的高,不包括边框,padding等-->
<object style="border:1px solid red" type="text/x-scriptlet" data="top.html" width="100%" height="200px"></object>
        
<!--iframe引入,同object方式一样,页面整个嵌套,默认高度为150,frameborder设置为1时边框宽度为2-->
<iframe marginwidth=0 marginheight=0 width="100%" height=200 src="top.html" frameborder="no" <!--scrolling="no"-->></iframe>

两中引入方式比较:

  • 相同点
    1.默认高度为150
    2.引入后本页面html嵌套引入页面html,整个引入
  • 不同点
    1.iframe引入使用scrolling="no"可以不让页面进行滚动,取消右侧滚动条
    2.iframe中 frameborder="no"可以修改为0或1,这里不是指宽度,可以理解为布尔型,当设为1时border宽度为2

以iframe为例展示引入top.html浏览器代码
在这里插入图片描述

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Java 开发框架的演变过程可以追溯到 1990 年代中期。当时,Java 还是一个相对较新的编程语言,缺乏成熟的开发框架和工具,因此开发者不得不编写大量重复的代码来实现常见的功能。 在这样的背景下,第一个流行的 Java 开发框架出现了,它是 JavaServer Pages(JSP)框架。JSP 允许开发者在 HTML 页面中嵌入 Java 代码,使得动态网页开发变得更加容易。然而,JSP 还是存在一些局限性,因此其他框架也开始出现。 接下来,Struts 框架在2000年发布,它采用了经典的 MVC(Model-View-Controller)架构,将应用程序的逻辑与用户界面分离,使开发更加模块。Struts 提供了一种自动映射技术,简了数据传递和验证的工作。 然后,随着 AJAX 技术的兴起,需要一种能够提供灵活性和响应性的框架。因此,Spring 框架于2004年发布,它是一个轻量级的框架,以依赖注入和面向切面编程为特点,提供了更好的可测试性和可维护性。 在之后的几年中,Java 开发框架继续演。Hibernate 框架出现,简了数据库操作;JavaServer Faces(JSF)框架提供了一个组件的用户界面开发模型;在移动应用程序开发领域,Android 框架成为主流。 最近几年,Spring Boot 成为热门的开发框架,它进一步简了 Java 应用程序的开发和部署流程。Spring Boot 提供了自动配置和可插拔功能,同时集成了大量的第三方库和开源项目。 总结来说,Java 开发框架的演变过程可以概括为从 JSP 到 Struts、Spring、Hibernate、JSF、Android,以及现在的 Spring Boot。每一个框架的出现都是为了解决前一代框架的局限性,并提供更加便捷、高效的开发方式。未来,Java 开发框架将继续演进,以适应不断变的技术和需求。 ### 回答2: Java开发框架的演变过程可以分为三个阶段:基础框架阶段,Java EE阶段和现代框架阶段。 在基础框架阶段,随着Java语言的发展,一些基础的开发框架相继出现,如Struts和Hibernate。Struts是一个MVC框架,通过将模型、视图和控制器分离,提供了Web应用程序开发的结构。Hibernate则是一个用于对象关系映射(ORM)的框架,简了数据库操作。这些框架的出现为Java开发提供了基本的支持。 Java EE阶段是指在Java平台企业版的支持下,一些更加全面和复杂的开发框架开始出现。例如,Spring框架根据依赖注入和AOP等设计原则,提供了一个全面的解决方案来构建Java应用程序。它提供了各种服务,如事务管理、安全性和远程调用等。另一个重要的开发框架是JavaServer Faces(JSF),它提供了一套组件模型和事件处理机制来构建Web应用程序的用户界面。 现代框架阶段是指从2000年以来的新一代Java开发框架的出现。这些框架充分利用了新的技术和概念,使Java开发更加简单、高效和灵活。例如,Spring Boot是Spring框架的一个子项目,旨在简Spring应用程序的开发和部署。它提供了自动配置和快速启动功能,使得开发人员可以更专注于业务逻辑。另一个例子是Micronaut框架,它是一个轻量级的Java开发框架,具有快速启动和低内存消耗的特点。 总之,Java开发框架的演变过程经历了基础框架阶段、Java EE阶段和现代框架阶段。从最初的基础支持到全面和复杂的解决方案,再到现代的轻量级框架,Java开发框架的不断演变使得Java开发变得更加简单、高效和灵活。 ### 回答3: Java开发框架的演变过程可以分为以下几个阶段。 第一阶段是早期的J2EE(Java 2 Platform, Enterprise Edition)时代。在这个阶段,Java开发主要依赖于使用EJB(Enterprise JavaBeans)的J2EE规范。EJB作为一种分布式技术,可以帮助开发人员构建企业级应用。然而,EJB的学习和使用难度较高,导致开发效率低下。 第二阶段是轻量级框架的崛起。随着对EJB的不满,开发人员开始寻求更加简洁、易用的开发框架。这一阶段涌现出了Struts、Hibernate等框架,它们提供了更加简单的编程模型和更高的开发效率。此外,Spring框架也在这个阶段被引入,并逐渐发展成为Java开发的事实标准。 第三阶段是全栈式开发框架的兴起。近年来,随着互联网和移动互联网的快速发展,开发人员开始关注全栈式开发框架,这些框架可以同时处理前端和后端的开发。典型的全栈式框架有Spring Boot和Play Framework。这些框架提供了大量的自动配置和默认约定,并通过功能丰富的插件系统提供了更高的开发效率。 第四阶段是微服务和云原生时代的到来。随着云计算的普及,微服务架构逐渐成为主流。微服务框架如Spring Cloud和Kubernetes等帮助开发人员构建可伸缩、可靠的分布式系统。此外,云原生框架如Quarkus和Micronaut等提供了更高的性能和更低的资源消耗,是开发新一代云原生应用的首选。 总的来说,Java开发框架的演变过程是从复杂而笨重的EJB到简洁而灵活的轻量级框架,再到全栈式和微服务框架的发展。这一演变过程主要是为了提高开发效率、减少开发难度,并适应不断变的互联网和移动互联网需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值