用户ID :  密码 : 

登 录

注 册

时代财富科技公司 FortuneAge Technology Co., Ltd. 校园博客客服网站(新)

我的资料

sherman

博客信息

积分:44
等级:0级 lv 0
日志总数:6
发表评论总数:5 (查看)
获得评论总数:8
发表留言总数:0
浏览总数:1926

最新公告

暂无公告

我的日历

最新评论

RE:我的孩子会提鞋了-及时行孝
声棉的文章很感情细腻,情感真挚,不仅在写你自己,也在写我,... RE:我的孩子会提鞋了-及时行孝
好感人的文章哇~~~~~ RE:致小偷信
楼主好幽默 RE:母亲的常用语
感动,震撼,思考 RE:批量替换ntext类型字段的部分内容
哈哈,學到東西了~

最新留言

[全部留言] [发表留言]
声棉开始写博客了。 这个可是你负责的产品哟,要多用用,可以...

RSS

首页 -> .NET技术区->页面静态化工作笔记
页面静态化工作笔记

页面静态化工作笔记,简单记录实现思路以备用:

用户输入一个页面路径,程序自动匹配页面中的用户控件,然后将页面中的用户控件生成html文件,同时写入更新文件的js脚本,最后将原文件引用用户控件处改写为引用html页,例如某页中含有如下代码

<%@ Register Src="controls/UC_Bottom.ascx" TagName="UC_Bottom" TagPrefix="uc2" propColuID="633434214587656250" %>

<%@ Register Src="controls/UC_Top.ascx" TagName="UC_Top" TagPrefix="uc1"

propColuID="633434214587656251" %>

<uc1:UC_Top ID="UC_Top1" runat="server" />

<uc2:UC_Bottom ID="UC_Bottom1" runat="server" />

静态化操作后代码变为:

<!--#include file=" /schBlog/MyWeb/fortuneage/pub/htmlAscxs/uc_top1_6334627118720250.html"-->

<!--#include file=" /schBlog/MyWeb/fortuneage/pub/htmlAscxs/uc_bottom1_6334627118626.html"-->

操作主界面如下

点查看控件列表后会匹配出这个页面中所有的用户控件

      

在些页面中选择要静态化的控件,点操作,便完成替换处理。

 

替换时,控件信息和页面信息同时入库,当数据库中已有某控件信息且参数信息也一致(如propColuID="633434214587656250"),替换时此控件不再生成HTML页,而是引用原有的HTML页。到此,第一次静态化处理已完毕。当浏览处理后的页面时,触发HTML页用来更新的JS脚本,如:var date = new Date("2008","5","12","10","2","48"); funcUpdate(date,"20","633459418283906250");,这段代码是在生成html页时写入的。Date表示生成HTML页的时候,20表示更新周期,633459418283906250表示控件IDfuncUpdate函数中判断更新条件,如果符合则以异步的方式post到后台更新html文件。考虑多用户并发时网络质量的差异,在后台中再一次判断更新条件,如果符合则写文件并加锁挂起,此处使用双加锁的模式,当线程获得文件使用权时,再一次判断更新条件,以防止刚更新过的文件再一次更新,造成资料浪费。
利用此方法对页面静态处理后,各新生成的用户控件对应的HTML页都是统一的更新周期和字符编码,因引另提供了一个页面管理控件,以将操作粒度定位到每一个控件。页面部分如下:

 

到此所用操作是由程序员完成,如果用户希望自己更新静态页,则使用如下页面:

网友评论

共 0 页,0 条记录  

用户名:
密码:
您的评论:



发 表 评 论