需求背景

一个网站有多个网页;一个网页,可以分为很多部分,举个例子,下面是一个特别简单的网页结构:

一般情况下,footer都是用于标识网站的相关信息(备案、联系方式、制作方),每一个页面都是相同的,如果又100个这样的页面,如果在每一个页面都写这么一段html代码,那么,无疑是特别难受的,另外,这个也不利于修改,一旦要修改,每个页面都要改一次,即使利用编辑器的全局替换,那也是不放心的,万一有一个页面在写代码的时候,和其他页面有点不同,全局替换也是有问题的。

PHP解决

如果有用过php的话,就知道,可以将footer的html代码单独写在一个footer.html文件中,然后在每一个页面的footer位置,加一行include代码即可:

JSP解决

如果是jsp的话,可以使用一个include指令即可:

问题

如果你的项目,前端和后端没有分离(一个代码库),那就没多大问题,反正后端和后端都是一组人写。

如果你的前端和后端相分离(两个代码库),那么修改两个代码库的代码,无疑是有点麻烦,单着还不是问题。问题是:在当今精通某种技术的时代,既擅长前端又擅长后端的程序员也并不多。

更大的问题:运行环境。

1、如果线上服务器没有安装php怎么办呢?

2、如果后端不是使用java,不用tomcat当服务器,那怎么能用jsp呢?

服务器端渲染 与 客户端渲染

php和jsp属于服务器端渲染,依赖于服务器的软件,所以会有点局限性。

但是,浏览器的DOM渲染,是属于客户端渲染,DOM渲染的问题就几乎没有了,正好,操作DOM的JavaScript是每个浏览器都支持的(DOM渲染可能会比服务器端渲染要稍微慢一点)。

JavaScript解决

可以这样做, 在footer的位置,只写一个

标签, 并且设置标签id:

定义一个JavaScript的函数,内容如下,目的就是设置上面这个

的innerHTML

/**

* 用户填充footer内容的代码

*/

function fillFooterDOM() {

var footer = document.getElementById("footer");

var content = "";

content += "所有页面都要显示的内容,放到这里"

footer.innerHTML = content;

}

将上面这个函数,放到每一个前端页面都会加载的js文件中(公共文件),并且在window.onload中调用这个函数即可。上面用的是原生的JavaScript,考虑到兼容性,可以使用JQuery来实现,然后在$(document).ready()中调用这个方法

所有城市list每次从页面花1段时间抽取后写入到数组,

所有城市list每次从页面花1段时间抽取后写入到数组,

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?

jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行? 因为在解析时最新解析的就是JA ...

请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答:

angularjs中向html页面添加内容节点元素代码段的两种方法

第一种方式:原生JS向html页面添加内容节点元素代码段:

js实现类似页面广告一段时间自动打开一段时间自动关闭的功能

js实现类似页面广告一段时间自动打开一段时间自动关闭的功能 一.总结 Window 对象的 open()方法:window.open('测试页面.html','news','height=300,wi ...

HTML页面弹出窗口调整代码总结

弹出跟你当前的窗口有没有菜单工具栏没有关系,你只要在页面中写一个脚本它就弹出了.比如  (正实数)

Java知多少(111)数据库之修改记录

修改数据表记录也有3种方案. 一.使用Statement对象 实现修改数据表记录的SQL语句的语法是:    update表名 set 字段名1 = 字段值1,字段名2 = 字段值2,……where特 ...

ifconfig报错:SIOCSIFFLAGS: Operation not permitted

# insmod mt7601Usta.ko rtusb init rt2870 --->usbcore: registered new interface driver rt2870 # iw ...

Linux编程简介

Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...

抽象数据类型Triplet的C语言实现

#include #include #define ERROR 0 #define OK 1 typedef int Status; ...

APS.NET Cookie

Cookie 提供了一种在 Web 应用程序中存储用户特定信息(如历史记录或用户首选项)的方法. Cookie 是一小段文本.伴随着请求和响应在 Web server和client之间来回传输.Coo ...

C#:查询某年(1900-2100)某月的日历

using System;using System.Collections.Generic;public class Program    {     /********************主函数 ...

python实战--数据结构二叉树

此文将讲述如何用python实战解决二叉树实验 前面已经讲述了python语言的基本用法,现在让我们实战一下具体明确python的用法 点击我进入python速成笔记 先看一下最终效果图: 首先我们要 ...

html 多页面合并,让多个HTML页面 使用 同一段HTML代码相关推荐

  1. vs2015网站发布时,设置页面合并后程序集的文件版本

    如何将web网站的页面合并成一个新的程序集发布,并设定文件版本? 这个问题我也纠结了很久,问了很多大牛,也没有找到解决方案 曾开了一贴,https://bbs.csdn.net/topics/3910 ...

  2. 方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…

      本文介绍几个方便.免费.好用的PDF在线处理网站.   在工作与学习过程中,经常会需要对PDF进行一些基本处理,例如文件合并.文件格式转换.页面顺序修改等等:尽管这些需求可以通过许多成熟的PDF处 ...

  3. LWN:在进程级别完成内核相同页面合并(KSM)控制!

    关注了就能看到更多这么棒的文章哦- Process-level kernel samepage merging control By Jonathan Corbet April 13, 2023 De ...

  4. ksm页面合并的并发处理

    内核代码中,内存规整会存在用户进程页面迁移的动作,ksm合并会存在页面合并的动作,这些动作和用户态对内存的读写动作是并行执行的,也就是说,可能存在这样的情况: 内核在做页面迁移或者合并的时候,用户态进 ...

  5. python 知乎 合并 pdf_实例4:用Python提取不同PDF文件中的页面合并进新的PDF文件...

    公司船务部一个重要任务就是需要准备每单货物的发票,从系统导出发票时是默认存为一个PDF文档,在打印的时候,有多少个文件,就需要点多少次"打印".如果能够将当天的发票PDF档合并在一 ...

  6. 将两页A4 pdf文档合并到一页A4页面上打印的方法

    在实验室打印论文, 直接把pdf打印感觉比较浪费, 许多白边框都没有有效利用, 而且打印出来的页数很多, 显得不紧凑, 而且多而繁杂. 于是想要把pdf页面合并拼接打印, 比如: "将两页A ...

  7. python合并pdf文件并生成页面

    1. 环境搭建 # python 版本 3.9.7 # 依赖包 reportlab==3.6.9,PyPdf2==1.27.3,pikepdf==3.0.8,pyinstaller==4.10 2.功 ...

  8. java 页面 分离 实现_JavaBean实现JSP页面和代码分离

    JavaBean实现JSP页面和代码分离以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JSP编程中 Struts一般 ...

  9. php重写html不刷新,html5,html_两个页面进行交互,如何实现页面不刷新就更改html?,html5,html,javascript,php - phpStudy...

    两个页面进行交互,如何实现页面不刷新就更改html? 图一Input.html我输入我是一只狗,然后发送给图二View.html页面.view页面如何接收.展示接收到的信息并更新相应位置的html?不 ...

最新文章

  1. python 语音websocket_Python 牺牲性能以提升程序员的工作效率
  2. Windows下Hadoop的环境安装[转]
  3. IT领域中混合云管理工具扮演什么角色?
  4. [python]---从java到python(01)---基础与入门上手
  5. “双减”后首份半年报 新东方在线营收亏损双减
  6. 如何将用户迁移到SQL Server中的部分包含的数据库
  7. 安装ie9提示未能完成安装_Windows 7下安装IE 11失败,提示:Internet Explorer未能完成安装...
  8. 2月26 ubuntu系统备份还原到相同电脑、另一台电脑
  9. 全国各省市经纬度范围
  10. sdio tf卡基础知识总结
  11. 从excel文件xlsx中特定单元格中提取图片
  12. 如何获取淘宝/天猫商品历史价格信息的API接口
  13. 大豆SNP位点信息查找V2.1版本
  14. 华硕vm510l装固态硬盘_华硕VM510L拆机换固态硬盘
  15. Sketch入门基础-画布、Artboard(画板)功能介绍
  16. IEEE帐号的创建和ORCid
  17. 视觉学习笔记5——FAR Planner全局路径规划算法学习研究
  18. Kettle(三):创建资源库
  19. 【数据蒋堂】第 47 期:Hadoop – 一把杀鸡用的牛刀
  20. laravel-excel maatwebsite excel 导入的中文文档

热门文章

  1. STM32工作笔记0078---UCOSIII任务挂起和恢复
  2. FastDfs工作笔记002---SpringBoot集成FastDfs
  3. android学习笔记---58_拖拉功能与多点触摸,实现图片的拖拉和缩放功能
  4. VS2012--应用程序无法正常启动0xc000007b 的错误
  5. 杭电1596find the safest road(spfa)
  6. php sort函数,php中sort函数的功能起什么作用呢?
  7. C语言和设计模式(之模板模式)
  8. java manager 如何使用_java - Android:如何使用AlarmManager
  9. 寻找某个数c语言,C++_C语言实现两个递减数列中寻找某一个数,本文实例讲述了C语言实现两个 - phpStudy...
  10. js获取今天剩余时间_js动画,setTimeout/setInterval的不准确