静态页中不是可以设置文本或者图片链接的么,
html文件不就是字符串吗? 字符串拼接?
如果想进行一定的分割,那就加入<p> 或者 <div>
在后台拼字符串,动态的生成JS的脚本。
方法:把首页的静态页面也重新生成一个,让它指向你生成的新闻静态页访问地址。
其实你缺少的是一个整体的设计。你设计当初应该说要考虑好他们之间的关系。
我现在可以提供2种方法:
1.根据动态页访问地址和参数来命名静态页(也就是建立动态地址与静态地址的转换公式)
如:/user/userDetail.aspx?id=6这样的地址我转换后变成 /user/userDetail_id6.html
新闻/newsDetail.aspx?id=17&page=2转换成/newsDetail_id17_page2.html;
这样的话关系就确定了。当然这只是一种规则方式。
那么我们怎么让它对应起来呢?
好的,我们来看看:既然规则是我们定的,我们就可以写一个通用的公式来转换它,可以用正则表达式或专门的一个转换函数,当然正则是比较方便的。
这个方案的好处是,我只需要想好我的转换规则,我写代码的时候可以不考虑静态化的问题,我只需要写成动态的地址就可以,等编写代码完成了,一切收工正常后,我们再通过某种方式按我们想好的规则来转换成静态地址就可以了。
那通过什么方式来转换地址呢?
好的,再来看:我们以.net为例,如果我们想全站静态或部分静态,怎么让它自动批量做呢?
asp.net里面提供了我们切入点,我们定义自己的httphandler,让它来接管http的所有请求,这样我们可以大作文章了,我们可以把response在输出前全部替换掉,用什么方法?刚才上面提到过了,用正则表达式就可以办到。(这个地方要了解编写自己的httphandler怎么样去操作,很简单,你一搜一大堆)。到这一步我们可能做好地址的转换了,那静态页面从哪来呀?按规则生成呗。
那么生成静态页面可以怎么操作呢?
兄弟你可能会说:“噢!这个简单,我会的。”行,那最好,但是我这里还是给你推荐一种方式。就是接管400错误页,让它跳转到自己专门用来处理400错误的页面上来,那这个页面做什么呢?其实也简单,我们400的错误地址我们知道,会通过我们的接管地址通过url传递自动传递过来,我们最下来把地址判断下是不是aspx的动态页,是动态页接下来的事情就好玩了。“是什么?”,是什么还用说吗?为它生成一个静态页呗,“好的!这个我会,我来干”,”那行交给你了“,你有了这个页面的动态访问地址,静态页生成好了,行,下一步做的事情是什么,302跳转,让用户去看我刚生成的静态页面。好的,这个过程结束了,那我们回头来看下这个访问的对应过程是什么样的?第一步:用户从首页进来后我通过规则把内容上的aspx页全部接管后换成html的地址。第二步:用户点了我们生成的html地址,但第一次的时候这个页面还不存在,怎么办?还能怎么办?提示400错误呗,400错误那接着呢?第三步:被我们自定义的400错误页接管了,哈哈,还是逃不出我的手掌心呀,接着根据规则来生成我们想要的html页面,并把用户转到这个静态页,冰果!(下一次再有用户访问就不用急了,应该已经生成过了。哈哈)
好的,第一种方案就在这了,不过它带来什么问题呢?追踪更新不方便,当然你可以维护一组页面的标签,通过标签来控制相应的页面删除,让下一个用户访问的时候再生成一个不就更新了嘛,呵呵,具体的实现自己想,不难。
第二种方案:
“什么?”“要设置什么规则?”“不明白”,那好方法有两种,一种再把上面一种方案看十几遍,看懂为止,要么就看下面的介绍。
不用规则用什么,用数据库或其它持久化数据对应下总可以了吧,哈哈,那来吧。
数据库很简单,二个主要的字段 activePageUrl,staticPageUrl
很明确吧,就是一一对应起来存起来,每次我不用规则去找了,我去数据库里面去找,不管你静态页面叫什么名字,我都把你对应起来,当然这个的缺点是显而易见的,数据量会一天一天一天再一天的变大,而且它不智能,我把地址上的参数换下位置它就不认识了,哎太不灵活了。那其它的事情和第一种方案大同小异,自己去想吧。没事了,晚安!错了,是下午安,思床心切,不好意思,只能帮到这些,不管是不是你想要的,我半个小时没了,看在可怜的份上,给点吧!
方法
1.重写生成一遍首页的静态文件,可以在添加新的文章自动生成一遍
2.使用ajax技术,ajax加载那些新闻
3.拼接js,填充那小部分
4.如果只是一个小部分,可以用ifream