`
yuxingfirst
  • 浏览: 50559 次
  • 性别: Icon_minigender_1
  • 来自: 湘潭
社区版块
存档分类
最新评论

页面静态化方案

    博客分类:
  • Java
阅读更多

在大型网站中,访问者看到的页面基本上是静态页面。为什么都要把页面静态化呢?把页面静态化,好处有很多。例如:访问速度快,更有利于搜索引擎收录等。目前主流的静态化主要有两种:一种是通过程序将动态页面抓取并保存为静态页面,这样的页面的实际存在于服务器的硬盘中,另外一种是通过WEB服务器的 URL Rewrite的方式,他的原理是通过web服务器内部模块按一定规则将外部的URL请求转化为内部的文件地址,一句话来说就是把外部请求的静态地址转化 为实际的动态页面地址,而静态页面实际是不存在的。这两种方法都达到了实现URL静态化的效果,但是也各有各自的特点。
将动态页面转化为实际存在的静态页面这种方法,由于静态页面的存在,少了动态解析过程,所以提高了页面的访问速度和稳定性,使得优化效果非常明显。所以这种方法被广泛采用。但是它的局限性同样存在。对于大型网站而言,这种方法将带来不可忽视的问题。
一、由于生成的文件数量较多,存储需要考虑文件、文件夹的数量问题和磁盘空间容量的问题;
二、页面维护的复杂性和大工作量,及带来的页面维护及时性问题,需要一整套站点更新制度。
URL Rewrite方式特点同样鲜明,由于是服务器内部解析的地址,所以内容是实时更新的,也不存在文件管理和硬件问题,维护比较方便。在服务器级URL Rewrite重写技术并不影响页面的执行速度。但是URL Rewrite的门槛比较高,国内虚拟主机大多不支持,而且虚拟主机是目录级的URL Rewrite,通过遍历目录读物URL转发规则的方式将大大降低页面的执行速度。
除了抓取动态页面和URL Rewrite的方法外,在这里我们再看一下另外的一种方法。此方法的核心思想就是:把页面划分成子数据块,每个数据块可能是一个inc文件,也可能多个数据块包含在一个inc文件中。具体的数据块划分根据页面的业务结构来处理。比如:网站头尾等公共数据块可以独立成一个文件。这种方法需要考虑以下几个方面:
1、用什么方式生成页面及里面的数据块
2、页面的更新机制;
3、大量的页面文件的维护工作;
4、页面数据块的及时性。
这种方式的话,通常可以在后台增加一个服务程序,专门生成某个频道或栏目的页面。这样虽然可行,按照频道分的话,逻辑结构也清晰。


【单服务模式】
这样会带来一些问题。例如:当频道修改后,相应的服务程序都要重新翻一遍。如果频道栏目很多,对应的服务程序也会很多,导致程序的维护工作量大。前台开发人员不仅要去做页面,也要考虑后台的服务程序结构,给他们增加了不必要的开发难度,降低了开发效率。
 

【多服务模式】
而在多服务模式下,会出现多台服务去争抢指令数据的情况。动作指令的状态必须在多个服务之间同步。服务升级了,也要一个一个去更新,出现错误了也要一个一个去排查。。。。。。
那么有没有一种方法能把生成页面的功能独立抽象成一个平台,同时提供一个程序接口,前台开发人员只需要按照这个接口,开发业务组件即可。现在前台开发人员只需要把写好的业务组件,部署到指定的地方即可。剩下的事情交给这个平台去做,这样就简化了系统发布,维护工作,减轻了前台开发人员的工作量,提高了他们的开发效率。

【平台集中处理模式】
       动作指令是指页面更新的动作,当页面数据有变化时,会根据业务规则从某个地方发出一个动作。它的来源大致可以分为三种:前台页面触发,后台内容管理系统触发,后台自动定时触发。
静态数据生成系统与业务组件的接口设计。通过反射的方式调用业务组件,接口的参数在指令结构的基础上扩展即可。比如增加一些错误描述,数据库链接对象等。
数据分发是一个独立的数据传输系统,它负责根据预先设定好的配置,把生成的页面数据传输到指定的web服务器上。
为了使系统在随着网站访问量的上升的同时做到水平扩展,加快指令的处理速度。所以需要把系统部署到多台服务器上,这样以来各个子系统就要统一通信协调。可以用MQ消息作为子系统之间的通信手段。子系统的部署模式变为Master-Slave的形式。Master主机上的系统负责读指令,然后把指令发送到MQ。各个Slave主机系统负责接收MQ消息指令,调用业务组件并更新某条指令的状态,这样就把处理业务逻辑的压力平均的分配到了各台slave主机。

    对于一个大型网站来说,生成的页面数据会非常多,管理这些页面文件又是一个问题。例如有的页面被删除了,而已经生成的页面数据还会存在各个web服务器上。这时就需要通过后台系统记录这些页面文件的部署位置,以便今后统一管理。同时业务组件的量也可能会比较多,特别是存在多版本的情况下,所以也需要把业务组件的配置情况记录到数据库中,便于统一管理。


分享到:
评论

相关推荐

    动态页面静态化汇总--页面静态化方案

    以下是对动态页面静态化方案的详细解释: 1. **Java与JSP**: Java是一种广泛使用的后端编程语言,JSP(JavaServer Pages)是Java中用于创建动态网页的技术。在传统的JSP应用中,服务器接收到请求后,会解析JSP...

    thymeleaf页面静态化springboot

    综上所述,Thymeleaf作为一种强大的页面技术,与Spring Boot和Spring Cloud的整合提供了便捷的模板渲染和页面静态化方案,极大地提升了开发效率和应用性能。在实际开发中,充分利用其特性,可以构建出高效、可维护的...

    ASP.NET页面静态化,伪静态化

    3. 使用第三方库,如NHaml、NWebsec等,提供页面静态化的解决方案。 **伪静态化** 伪静态化是通过URL重写技术,让动态URL在不改变其功能性的情况下,展示为静态化的形式。在ASP.NET中,可以使用`UrlRewrite`模块...

    大型站点网站静态化实现方案

    以下是对这个大型站点网站静态化实现方案的详细解读。 1. **静态化原理**: 静态化是将动态网页转化为HTML静态页面的过程,这样用户在访问时不再需要通过服务器执行脚本,而是直接读取已经生成的HTML文件,大大...

    ASP.NET 动态页面静态化

    通过以上介绍,我们可以看到ASP.NET动态页面静态化是一个涉及多方面技术的综合解决方案。正确实施后,不仅可以显著提升网站性能,还能增强用户体验和搜索引擎友好性,是一项值得深入研究的技术。

    网站架构(页面静态化_图片服务器分离_负载均衡)方案全解析

    本文将深入解析网站架构中的三项关键技术:页面静态化、图片服务器分离以及负载均衡,并探讨它们如何协同工作以提升网站性能。 #### 1. 页面静态化 页面静态化是一种提高网站访问速度的有效手段。通过将动态生成的...

    页面静态化处理

    综上所述,页面静态化处理对于提升网站性能和用户体验具有重要意义,而静态化CMS则为此提供了便利的解决方案。开发者在设计和实施时,应充分考虑各种因素,选择适合的静态化策略和技术,以实现最佳效果。

    ecshop2.7.2完全静态化方案V1.1

    "完全静态化方案V1.1"是针对该版本的一个优化策略,旨在提高网站性能,降低服务器负载,提升用户体验,尤其是面对高访问量时。静态化是一种将动态网页转化为静态HTML的技术,它可以显著提升页面加载速度,减少数据库...

    jsp静态化,jsp静态化

    **正文** JSP(JavaServer Pages)静态化是一种常见的优化技术,主要目的是提高网站的访问速度和搜索引擎友好性。...通过合理选用和配置静态化方案,可以显著改善用户体验,减轻服务器压力,同时有利于SEO优化。

    httpclient 静态化网站 project

    【标题】"httpclient 静态化网站 project...通过这个项目,开发者可以学习到如何利用HttpClient进行网络通信,以及如何设计和实现一个完整的网站静态化解决方案。这对于提升Web开发技能和理解网络爬虫原理非常有价值。

    soft_页面静态化软件 v0.9 .zip.zip

    【描述】"soft_页面静态化软件 v0.9 .zip.zip" 描述简洁,但暗示了这个软件包是一个用于实现页面静态化的解决方案,其v0.9表示这是一个软件的迭代版本,可能包含了一些性能优化和功能改进。 【标签】虽然没有提供...

    asp.net+动态页面静态化简单示例(入门)

    本示例将带你入门ASP.NET中的动态页面静态化。 一、为什么需要动态页面静态化? 在Web开发中,动态页面可以处理复杂的业务逻辑和用户交互,但每次请求都需要服务器执行相关代码,消耗资源。而静态页面则可以直接由...

    上品折扣网站静态化方案1

    总结,上品折扣网站的静态化方案旨在通过生成静态HTML页面,提高页面加载速度,优化用户体验,同时通过CDN缓存、伪静态和SEO优化等手段,提升网站的可用性和搜索引擎可见性。整个方案涉及数据库设计、模板同步、任务...

    通用首页静态化工具-可以把首页转化为静态页面

    总的来说,“通用首页静态化工具”是针对动态首页优化的一种解决方案,它可以帮助提高网站性能和SEO效果,但需要根据实际需求和环境进行合理配置和使用。在使用该工具前,应确保服务器环境支持所需的技术,并了解其...

    aspx页面伪静态化的配置

    ASPX页面伪静态化是一种常见的优化技术,它主要用于提高网站的搜索引擎友好度和用户体验。在ASP.NET环境中,通过将动态的ASPX页面转换为看似静态的HTML文件路径,可以达到这个目的。这样做不仅可以减少服务器的负载...

    传智播客PHP培训 页面静态化教程 PPT 笔记 软件

    页面静态化是Web开发中的一个重要概念,它涉及到网站性能优化和用户体验提升。在这个"传智播客PHP培训 页面静态化教程 PPT 笔记 软件"中,我们可以期待学习到关于如何利用PHP实现页面静态化的一系列技术与策略。 ...

    页面静态化实例.rar

    静态方案: 所有请求先要经过一个(urlrewriter.xml),符合一定规则的请求,由过滤器的...此方安原则上支持任何静态化处理,但对页面变更频率较大的页面不合适,不但没有减较服务器的压力,反而对服务器造成了复担.

    一个简单的新闻发布系统+新闻子页页面静态化

    在这个"一个简单的新闻发布系统+新闻子页页面静态化"项目中,我们关注的重点是使用全存储过程实现系统后端逻辑以及新闻子页的静态化处理。 全存储过程(Full Stored Procedure)是指在数据库中预先编写并存储的SQL...

    php页面静态化学习笔记.doc

    页面静态化是提高大型网站性能的重要技术手段,尤其在互联网领域,面对高流量和大数据量的挑战时显得尤为重要。本文将深入探讨PHP页面静态化的基本概念、技术原理和实现方式。 首先,理解流量与网站性能的关系。...

Global site tag (gtag.js) - Google Analytics