将动态aspx页面转换成为静态html页面的几种方法

1.         模版法

该方法历史悠久,具体处理流程为采用一个html模版,将其中的关键字替换为我们希望的信息。

优点:

缺点: 所有的信息都要采取字符串批凑的方式来实现,比如需要一个列表,就需要拼凑字符串。问题是开发周期长,可扩展性非常差,而且不易维护,难修改。

2.         截取Control.Render()中的HtmlTextWriter的数据。

优点:

该方法比较方便而且灵活,在开发中不必顾虑动态和静态页面的统一处理模式。基本上按照动态页面的处理过程处理就Ok了。

并可在转换为静态html页面的时候过滤掉一些多余的数据及在适当的地方插入数据。

数据插入可考虑采取在静态页面中做标记的处理方式,如<!—Content Beginà一些正文<!--Content End  --> ,采取判断<!-- Content End  -->标记的方式将需要加入的数据加入到该标记的前面,也可利用该方法替换掉一些在动态页面中做好<!-- -->标记的原本用于动态回发等处理的逻辑。

 

方案架构一:

l         通过一个动态aspx转换html生成器页面来负责生成静态的页面。针对帖子Topic和论坛列表都有各自的Generator程序。Generator程序为aspx类型!执行时,将通过一定的验证模式验证操作是否合法。

l         通过一个后台线程或者Windows服务来跟踪数据库中已经标记好的尚未生成或者已经更新的但是也尚未静态化的数据列表,通过WebRequest来访问静态页面生成器程序,通过一定的参数形式将欲生成的数据标识和生成动作通知给生成器Generator。

l         Generator验证请求是否合法,然后执行生成动作,将动态网页生成为静态html页面。

方案架构二:

l         论坛下的大部分动态aspx页面其实都继承自一个页面生成器基类,该基类正常状态下是不激活的。该基类含有能够生成静态html的操作函数。

l         通过一个后台线程或者Windows服务来跟踪数据库中已经创建或更新的数据,根据数据的内容通过WebRequest来访问动态网页的内容,并加上特殊的启动生成器基类生成数据的标记(该标记可为加密的验证逻辑)。

l         动态页面根据请求启动生成html的功能,通过指定的处理类将相应的静态文件生成到与其路径完全相同的路径下。

如处理TopicView.aspx的生成静态html的类通过TopicViewHtmlGenerator类来处理。

l         该架构设计灵感参照淘宝的架构而来。

 

与动态网页结合,开发上的顾虑减轻,代码重复劳动减少,保持面向对象特征。


更多专业前端知识,请上 【猿2048】www.mk2048.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSH协议详解

简介 SSH只是一个协议&#xff0c;基于这个协议有不同的实现&#xff0c;这些实现中有开源&#xff0c;也有收费。 原理 普通网络通信一般是明文通信&#xff0c;数据容易被中间人拦截并且解析&#xff0c;而SSH协议则提供了基于内容加密服务。 流程&#xff1a; 第一种&#x…

怎么通过media foundation将图像数据写入虚拟摄像头_千倍成本压缩!特斯拉开发虚拟激光雷达,替代最贵自动驾驶传感器...

「谁用激光雷达&#xff0c;谁完蛋&#xff01;」在去年特斯拉举办的 Autonomy Day 上&#xff0c;特斯拉 CEO Elon Musk 言辞激烈地炮轰激光雷达。「昂贵的传感器是不必要的&#xff0c;这就像是一大堆昂贵的附属品。」「像阑尾一样。一个阑尾不好——那么&#xff0c;一大堆阑…

JBoss Fuse 6.1 + HawtIO第一部分

它是开源的&#xff01; JBoss Fuse是开源ESB &#xff0c;是Red Hat收购FuseSource之后Fuse ESB的发展。 它是开源的 &#xff0c; Apache v2许可的 &#xff0c; 并由Red Hat完全支持 。 最好的部分之一是&#xff0c;您可以免费下载并使用它&#xff0c;并且在生产或订阅中支…

html5新增的js api,对HTML5新增JS Api的思考

1.为什么javascript的变量名不使用css中的命名方法&#xff0c;而选择使用驼峰命名法因为在javascript中“-”表示减法&#xff0c;所以如果使用“-”的话会出现不必要的问题。2.在javascript中已经有className方法添加类名&#xff0c;为什么还要新增加classList.add方法因为c…

什么是URL转发和一个IP建多个Web站点--主机头名法

什么是URL转发&#xff1f; 所谓 URL 转发&#xff0c;是中企资源对在中企资源注册的域名&#xff0c;所提供的一项特别的域名增值服务&#xff0c;此服务是通过中企资源服务器的特殊技术设置&#xff0c;实现当访问您的域名时&#xff0c;将会自动跳转到您所指定的另一个网络地…

eval()

eval() 接收一个字符串&#xff0c;这个字符串必须是一个表达式&#xff0c;然后执行并返回表达式的值 In [6]: x 7In [7]: eval(3 x) Out[7]: 10 In [8]: eval(pow(2, 3)) Out[8]: 8 In [9]: eval(2 3) Out[9]: 5 转载于:https://www.cnblogs.com/pzk7788/p/10264105.h…

ajax html页面传参数,jQuery AJAX:如何将大型HTML标记作为参数传递?

如何使用jQuery AJAX将大型HTML标记数据传递给我的PHP&#xff1f;当我收到结果时&#xff0c;这是错误的。jQuery AJAX代码&#xff1a;$(#saveButton).click(function() {// do AJAX and store tree structure to a PHP array//(to be saved later in database)var treeInner…

使用Drools 6.0进行部署

KieScanner 6.0 KieScanner取代了5.x KnowledgeAgent。 它使用嵌入式Maven允许在运行时解析和检索jar。 6.0应用程序现在可以轻松支持依赖关系和可传递依赖关系&#xff1b; 使用众所周知的Maven语义进行版本控制。 它允许在类路径上进行部署&#xff0c;也可以在运行时动态进行…

activemq安装与配置_ActiveMQ(消息队列)从入门到了解

一、 ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品&#xff0c;最流行的&#xff0c;能力强劲的开源消息总线。ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现&#xff0c;尽管 JMS 规范出台已经是很久 的事情了&#xff0c;但是 JMS 在当…

httpHandlers和httpModules接口介绍 (5)

IHttpHandler工厂 class TestHandlerFactory : IHttpHandlerFactory{public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated){string fname url.Substring(url.IndexOf(/) 1);while (fname.IndexOf(/) ! -1)fname …

P4336 [SHOI2016]黑暗前的幻想乡

题目 P4336 [SHOI2016]黑暗前的幻想乡 做法 每种颜色恰好一条边&#xff0c;有点难处理啊 根据套路&#xff0c;数据范围这么小&#xff0c;容斥一下所有的情况就可以了 对每种颜色进行状压&#xff0c;表这次只能选这些颜色&#xff0c;做\(n-1\)的时候会加上多余的东西&#…

智联招聘简历如何导出html,如何将拉勾网(智联招聘)的预览简历导出来

最近在整理简历的时候发现拉勾网/智联招聘上面的预览简历是那么简洁漂亮&#xff0c;可是当我想把他导到本地&#xff0c;发pdf文件给企业时却只能是word&#xff0c;那么的难看&#xff0c;摸索了一会儿找到了一种比较好的方法可以得到预览的简历。1.另存为html文件在这里插入…

Java反编译器的剖析

简单地说&#xff0c;反编译器尝试将源代码转换为目标代码。 但是有很多有趣的复杂性-Java源代码是结构化的&#xff1b; 字节码当然不是。 而且&#xff0c;转换不是一对一的&#xff1a;两个不同的Java程序可能会产生相同的字节码。 我们需要应用启发式方法&#xff0c;以合理…

Mybatis注解开发模糊查询

Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时&#xff0c;如何进行模糊查询 模糊查询语句写法&#xff08;在Select注解中&#xff09;&#xff1a; where field like CONCAT(%,#{keyWord},%) 下面是一些错…

JS中深浅拷贝 函数封装代码

一、了解 基本数据类型保存在栈内存中&#xff0c;按值访问&#xff0c;引用数据类型保存在堆内存中&#xff0c;按址访问。 二、浅拷贝 浅拷贝只是复制了指向某个对象的指针&#xff0c;而不是复制对象本身&#xff0c;新旧对象其实是同一内存地址的数据&#xff0c;修改其中…

iOS开发之Masonry框架-使用方法须知

目录 常用的属性与常量Masonry使用注意约束的优先级Masonry添加约束的方法修改约束在哪创建我的约束创建约束技巧&#xff1a;Masonry是一个轻量级的布局框架&#xff0c;它拥有自己的描述语法&#xff08;采用更优雅的链式语法封装&#xff09;来自动布局&#xff0c;具有很好…

wps单机无网络版_单平台销量破百万,这个国产单机系列要出网游,还要上主机...

他们想做"国际顶级的单机游戏开发商"。文/彭子诚作为一款国产单机游戏&#xff0c;《古剑奇谭三》在去年年底上市后&#xff0c;至今在 Steam 上依然保持着 83% 的好评率。大量的玩家对于游戏内容给出了认可&#xff0c;“用心”这个词是最高频出现的词语。Wegame 官…

JavaFX 8的弹出式编辑器

在过去的几个月中&#xff0c;我很高兴与JavaFX 8一起使用&#xff0c;以便为计划和调度应用程序实现复杂的用户界面。 所需的功能之一是执行“就地”编辑的方法&#xff0c;即快速编辑用户选择对象的某些基本属性的方法。 遵循“如果您无法创新&#xff0c;就模仿”的原则&am…

body onload 控制窗口大小 html,如何实现在调整浏览器窗口大小时缩放的网页?

感谢所有的建议&#xff01;看起来我必须做的丑陋的东西是必要的。以下工作(在我的机器上&#xff0c;无论如何)在IE和FireFox中。我稍后可以为CodeProject.com制作一篇文章; - )这个javascript进入&#xff06;lt; head&#xff06;gt;部分&#xff1a;var tmout null;var mu…

【Mac命令行学习】(持续更新)

常用命令&#xff1a; 一、修改环境变量文件&#xff1a; 1、进入文件&#xff1a;vi .bash_profile 2、键盘点击【a】键&#xff0c;进入文件编辑 3、修改完成后&#xff0c;如果是vi&#xff0c;点击【esc】键退出编辑模式 4、输入以下命令进行具体操作&#xff1a; :wq 保存…