静态化

多线程批量静态化 java与php【原创】

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 20:28:07
需求描述:现在网站的数量达到了3万多篇,全站都是静态化的,然而有时候改了网站的导航,问题大了。怎么办?跑php?单线程造成了我不得不停下其他工作,只为了跑脚本。而且中间可能会遇到错误,我又得重新开始跑。 其次,进度条的问题?php在跑脚本的时候 除非在cli下,不然cgi下根本不知道后台执行的进度。这个问题相到的大。 解决方案1:参考张宴的文章, 他采用了php扩展机制,支持多线程。 解决方案2:用java来写,java原生就支持多线程的。而且IO性能好。(不用修改原来的代码) 支持进度条反馈。 思路:多线程采集新闻的方式。 接下来是代码实现,我稍候发布出来。 参考资料: http://blog.s135.com/pthreads/ import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.Writer; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class

页面静态化

吃可爱长大的小学妹 提交于 2019-12-05 23:59:01
1.什么是页面静态化 页面静态化,可以分为伪静态与静态化两种 伪静态是指将动态链接通过一定的手段变成静态文件的链接( restful方式等 ),如userdetail.htm?userid=1234 变成 userdetail/1234.html 静态化 则是在userdetail目录下面生成1234.html文件 2.为什么需要静态化 我们为什么需要将页面静态化,主要考虑到一下方面 利用 seo (search engine optimization ) 搜索引擎优化 提高程序性能,由于不访问容器和对数据库的操作,所以效率比较高 防止 sql 注入攻击 3.怎样在项目中使用页面静态化 1.怎样生成静态文件 我们可以使用模板引擎的方式,根据模板和数据,生成对应的静态文件,常见的java的模板引擎有( freemarker, velocity,beetl )等,目前我们的静态化,采用freemarker 2.模板的存储 静态化模板的存储,通常有两种: 1,保存数据库;2,当成资源文件放在工程目录下。 如果模板规模比较大,且模板的更新比较平凡,建议使用数据库进行保存。 3.如何访问静态文件 单一工程/常规工程 常规工程项目架构如图 常规工程,可以将生成的静态文件放置在某一个文件夹下或者某一个静态文件服务器中,由nginx等代理服务器,反向代理访问相应的资源文件 使用阿里云存储OSS

PHP页面纯静态化与伪静态化

蹲街弑〆低调 提交于 2019-12-01 01:56:30
在很多地方都看到有PHP整站静态化的东东,怪唬人的。。其实,你会静态化一个页面,那么别说整站了,想静态化多少都可以。所以关键是,首先要知道怎么静态化一个页面,了解静态化的原理是关键, 这里就说下我个人的理解了。 区别: 纯静态页面: 是指网页文件在服务器的硬盘上以纯html代码文件存放的,默认文件名通常是htm、html、shtml、shtm等,一般情况下是由一个内容管理系统来生成的网站。 伪静态网站: 是指以html或者htm为扩展名的url,在客户端看起来被认为是静态网站,实际上在服务器端采用URL重写技术指向动态程序路径。另外还有的是采用Ajax等JS技术调用服务器端动态内容来显示,虽然网页是静态的,内容却是动态读取的。 优缺点: 伪静态其实是动态的或者半动态的网站,动态和静态各有优缺,一般来说静态的性能优势明显,访问量大的网站无不是采用静态化的网站。随着网站的复杂程度增高和用户对交互的需求,一些动态的部分不可以静态化,所以,目前大多数网站或多或少都会有动态的部分。 一、纯静态页面: 首先,需要知道几个函数。 ob_start(); ob_end_clean(); ob_get_contents(); file_put_contents();//这个可以用fopen,fwrite代替 file_exists();等函数。 不知道这些函数的就自己去翻手册,这里就不多讲解了。