PHP 的页面静态化有多种实现方式,比如使用输出缓冲(output buffering),该种方式是把数据缓存在 PHP 的缓冲区(内存)中,下一次取数据时直接从缓冲区中读取数据,从而避免了脚本的编译和访问数据库等过程:另一种方式是直接生成静态的 HTML 文件,使用文件读写函数来实现,一些内容不经常改动的页面可以使用静态页面,访客访问到的页面就是真实的 HTML 页面,一些常见的 CMS 会使用该种方法. 以第二种方法为例,参考 DedeCMS 5.7 的静态化功能,在 ThinkPHP 3.…
上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter 后来想到可以通过WebRequest获取html代码,然后采用递归算法来实现.基本实现思路如下: 通过WebRequest获取超链接地址返回的html代码,并保存:然后正则表达式匹配html代码中所有的超链接hr…
上一篇有提到利用IHttpModule和ResultFilter实现页面静态化功能.后来经过一些改动,将ResultFilter中要实现的功能全部转移到IHttpModule中来实现 Asp.Net MVC页面静态化功能实现一:利用IHttpModule和ResultFilter 1.改动后的自定义IHttpModule实现代码: public class RouterHttpModule : IHttpModule { public void Init(HttpApplication appl…
由于公司现在所采用的是一套CMS内容管理系统的框架,所以最近项目中有一个需求提到要求实现页面静态化的功能.在网上查询了一些资料和文献,最后采用的是小尾鱼的池塘提供的 利用ResultFilter实现asp.net mvc3 页面静态化实现方式,然后结合IHttpModule过滤并判断当前请求.实现代码如下: 实现思路:当服务器接收到一条Http请求后,会先进入IHttpModule并分析出当前请求的Url对应的静态页面文件路径.如果该文件存在,直接返回静态页面给客户端,终止本次请求.如果静态页面…
页面静态化(代码在最后) 静态页面 是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”.“=”.“&”等特殊符号. 注意:静态页面并非网站上没有动画的就是静态页面. 动态页面 是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页.常见的扩展名有:.asp .php .jsp .cgi.aspx 等. 注意:动态页面的“动态”是网站与客户端用户互动的意思,而非网页上有动画的就是动态页面. 什么是PHP静…
Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态化的朋友会问为啥要这么做,jsp访问好好的 为啥多此一举 好处: 1. 效率方面,访问html页面时,服务器找到页面后直接返回,不会再进行后台处理,速度快很多很多,同时也是解决高并发,降低服务器资源占用最有效的方式. 各大门户类网站大家都可以看看页面的后缀,几乎都是.html结尾的. 2. seo方…
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则.强大的功能.高效的渲染效率.详尽的帮助说明与不断的更新与维护.常见的前端模板引擎有: 常用的java后台模板引擎:jsp.FreeMarker.Velocity等. 请不要迷恋速度,为了推广的测试可能是片面的,好的模板引擎经得起时间考验,建议大家选择成熟的.常用的模板引擎.另外不管前后端的模板引擎…
MVC 页面静态化   最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存. 基本原理为: 1.为需要静态化的Action上加一个自定义的实现了IResultFilter的Attribute(具体见下文) 2.添加一条路由规则,实现访问静态页面,把它放在原有路由的前面 //http://product/123.html routes…
最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc提供的过滤器扩展点实现页面内容的文本保存. 基本原理为: 1.为需要静态化的Action上加一个自定义的实现了IResultFilter的Attribute(具体见下文) 2.添加一条路由规则,实现访问静态页面,把它放在原有路由的前面 //http://product/123.html routes.MapRoute( "…
1. 页面静态化是什么? 页面静态化有非常多含义,在WEB开发中.静态网页一般理解为站点中大部分超级链接所引用的页面是单独的HTML静态页面文件(如.htm..html等页面文件,html语言本身是静态的,不支持数据的传递,能够防止SQL注入 ). 2. 为什么都要把页面静态化呢? 对于如今的互联网应用(Web Application)来说.动态页面是占有绝对高的地位的,正因为有了动态化,才有了如今互联网的丰富多彩.可是如同全部别的事实一样,优点往往都是有代价的.为了产生出动态的效果,每一次对页…
FastDFS是一个轻量级分布式文件系统,   使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务   FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage).   跟踪器主要做调度工作,在访问上起负载均衡的作用.   存储节点存储文件,完成文件管理的所有功能:就是这样的存储.同步和提供存取接口,FastDFS同时对文件的metadata进行管理.   所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)…
题外话:       页面静态化(展示数据从JSP页面变成HTML页面)实现方式-->模板技术   从本质上来讲,模板技术是一个占位符动态替换技术.一个完整的模板技术需要四个元素:①模板语言(使用的语法)   ②包含模板语言的模板文件(.ftl结尾)   ③模板引擎(jar包)  ④拥有动态数据的数据对象       FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具.它不是面向最终用户的,而是一个Java…
1.在开发项目时,有时会遇到一些页面数据量特别大,但是又不经常改变的情况,如商城首页等,这时候就需要进行页面静态化,减轻服务器和数据库的压力. 这里我们先用原生的PHP写一个简单的demo,用来理解页面静态化的原理,然后再尝试用框架说明一下(thinkphp). 主要会使用到PHP的ob相关函数和文件操作函数file_put_contents. 这里在项目中新建了两个文件,test.php(控制器),muban.php(模板) test.php <?php if(file_exists("…
本文源码:GitHub·点这里 || GitEE·点这里 一.页面静态化 1.动静态页面 静态页面 即静态网页,指已经装载好内容HTML页面,无需经过请求服务器数据和编译过程,直接加载到客户浏览器上显示出来.通俗的说就是生成独立的HTML页面,且不与服务器进行数据交互. 优缺点描述: 静态网页的内容稳定,页面加载速度极快: 不与服务器交互,提升安全性: 静态网页的交互性差,数据实时性很低: 维度成本高,生成很多HTML页面: 动态页面 指跟静态网页相对的一种网页编程技术,页面的内容需要请求服务器…
一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格…
页面静态化的技术实现有两种方式 使用PHP自己的缓存机制 先说明一下OB缓存的机制. ob1.php 代码:说明的ob的各个用法->项目中 ☞ 如何打开ob缓存 ①     配置php.ini 文件 output_buffering = 4096 ②     直接在程序中  ob_start(); 说明: 在php5.2这个版本 在php.ini有一个配置 output_buffering  ,默认是关闭,如果是关闭,下面的代码就会警告. <?php //开启ob缓存 ob_start();…
一:页面静态化 几个概念: 静态网址:(比如:http://localhost/abc.html) 特点:1.利用seo(search engine optimization) 搜索引擎优化;2:访问速度快 3:防止sql注入 http://localhost/index.php?u=123&p=/*2323*/ 动态网址:(比如:http://localhost/news.php?id=112 即访问的是一个php页面,可以传递参数) 特点:1:不利于SEO;2:访问速度慢;3:有被注入sql…
一:关键技术介绍: 衡量是否为大型网站的要素: A:PV值(page views 页面浏览量) 访问量大: 带来的问题:1:流量大 -->解决方案:增加带宽,优化程序(视频和图片较浪费带宽,尽量优化图片和视频的大小) 2:并发量:同时访问 -->解决方案:修改程序的架构(服务器集群) 服务器集群: 就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器.集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可 以用多个计算机做备份,从而使得任何一个机器坏了整个系统…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.html", defaults: new { controller = "Main" , action = "Index" } );   需要将静态的html文件处理程序映射到aspnet_isapi.dll处理.    可以在IIS中添加如图:       也可以…
页面静态化分为两种:伪静态和真静态,这里主要介绍的是真静态. 进入正题之前先简单介绍一下SSI和shtml: 1).SSI是Server Side Include的简称(服务器端嵌入) 2).shtml是包含有嵌入式服务器方包含命令的HTML文本.在被传送给浏览器之前,服务器会对shtml文档进行 完全的读取.分析以及修改.   想要让IIS支持服务器包含,还需要简单配制一下,打开服务器端包含即可.启用或关闭Windows功能-> Internet Information Services->…
如何优化页面响应时间: 动态页面静态化 优化数据库 使用负载均衡 使用缓存 如果页面中的一些内容不经常改动,可以使用动态页面静态化.好处是:减少服务器脚本的计算时间:降低服务器的响应时间. 1.动态URL地址设置静态形式(伪静态) 例如:http://xxx.com/index.php?c=play&id=1111    => http://xxx.com/play/1111.html  (并不是一个纯静态页面) 2.buffer buffer其实就是缓冲区,一个内存地址空间,主要用于存储数…
PHP文件执行阶段:语法分析->编译->运行 静态html文件执行顺序:运行 动态程序: 连接数据库服务器或者缓存服务器->获取数据->填充到模板->呈现给用户 关于优化页面响应时间 动态页面静态化 优化数据库 使用负载均衡 使用缓存 1. 动态页面静态化:页面中一些内容不经常改动 不适用于内容经常变换的应用:例如:微博等.如果页面中一些内容改动,动态页面静态化是非常有效的加速方法. 动态页面静态化好处: 减少服务器脚本的计算时间 降低服务器的响应时间 2. 动态URL地址设…
1.file_put_contents()函数 2.fwrite()函数 3.使用PHP内置缓存机制实现页面静态化-output_buffering…
1 说明 你到"当当"搜索Java分类图书时,"当当"会去查询数据库!每天都有很多人去搜索"Java分类"的图书,每次都去访问数据库,这会有性能上的缺失!如果是在访问静态页面(html)那么就会快的多了!静态页面本身就比动态页面快很多倍,而且动态页面总是要去数据库查询,这会更加降低速度!页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面.而且静态页面还有助与搜…
案例需求: 使用PHP缓存机制完成新闻管理系统的页面静态化数据库表 ecs_article (新闻表)因为新闻这些信息,并不是对实时性要求高,本身这个新闻比较稳定,内容也比较固定,所以我们考虑: 当第一个用户访问某条新闻后,我们使用PHP缓存机制把页面显示内容缓存到一个静态页面(.html)中,当下次访问时,直接访问html页面即可. 一个新闻列表页,一个新闻详细页,要求点击一篇title的时候,生成一个静态页面,当第二次再打开这个title的链接的时候,有静态页面则取静态页面来显示. 新闻列表…
我们可以使用PHP自带的缓存机制来完成页面静态化,但在这里,需要说明一点,仅靠PHP缓存机制并不能完美的解决页面静态化,往往需要和其他页面静态技术(通常是伪静态技术)结合使用 例子: 当访问一个页面时,先判断是否存在缓存,存在则直接输出缓存文件中的内容,否则,先查询数据库,获得数据,生成缓存文件. 详解PHP缓存机制: output_buffering,常用的函数 ob_start() 开启PHP缓存机制功能 ob_get_contents() 返回输出缓冲区的内容 ob_clean()  清空…
三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&title=今天天气不错 ③伪静态网址: 伪静态仅仅是对动态网址的一个重写,伪静态网址不能让动态网址静态化,搜索引擎不会认为伪静态就是HTML文档,其次伪静态可取,但是应把重心放在取出冗余参数.规范URL,竟可能的避免重复也等等. 举例说明:http://v.youku.com/v_show/id_XM…
1.说明 页面静态化是把动态页面生成的html保存到服务器的文件上,然后再有相同请求时,不再去执行动态页面,而是直接给用户响应上次已经生成的静态页面. * 核心思路为拦截请求,实现请求转发指向静态页面. * 静态化页面实现方法为自定义类继承HttpServletResponseWrapper,修改构造函数参数,并重写getWriter()方法,使其原本输出至浏览器额内容写入静态页面中 =============================== 2.查看图书分类 我们先来写一个小例子,用来查看…
<?php /** *PHP页面静态化分为以下步骤: *1.打开输出控制缓存 *2.返回输出缓存区的内容 *3.将一个字符串写入文件 *4.冲刷出缓存区的内容 */ //1.打开输出控制缓存 ob_start(); ?> <html> <head> <title>php页面静态化</title> </head> <body> php页面静态化 </body> </html><?php //2.…