生成静态页面的方案_第1页
生成静态页面的方案_第2页
生成静态页面的方案_第3页
生成静态页面的方案_第4页
生成静态页面的方案_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何生成静态页面的五种方案方案1:/传入url返回网页的html代码/url/publicstaticstringgeturltohtml(stringurl)errormsg=;trysystem.net.webrequestwreq=system.net.webrequest.create(url);/gettheresponseinstance.system.net.webresponsewresp=wreq.getresponse();/readanhttp-specificproperty/if(wresp.gettype()=httpwebresponse)/datetimeupd

2、ated=(system.net.httpwebresponse)wresp).lastmodified;/gettheresponsestream.system.io.streamrespstream=wresp.getresponsestream();/dimreaderasstreamreader=newstreamreader(respstream)system.io.streamreaderreader=newsystem.io.streamreader(respstream,system.text.encoding.getencoding(gb2312);returnreader.

3、readtoend();catch(system.exceptionex)errormsg=ex.message;return;你可以用这个函数获取网页的客户端的html代码,然后保存到.html文件里就可以了。方案2: 生成单个的静态页面不是难点,难的是各个静态页面间的关联和链接如何保持完整;特别是在页面频繁更新、修改、或删除的情况下; 像阿里巴巴的页面也全部是html的,估计用的是地址映射的功能关于地址映射可参考: 可以看看这个页面,分析一下他的“竞价倒计时”功能 asp.net生成静态html页在asp中实现的生成静态页用到的filesystemobject对象!在.net中涉及此类操作

4、的是system.io 以下是程序代码 注:此代码非原创!参考别人代码 /生成html页publicstaticboolwritefile(stringstrtext,stringstrcontent,stringstrauthor)stringpath=httpcontext.current.server.mappath(/news/);encodingcode=encoding.getencoding(gb2312);/读取模板文件stringtemp=httpcontext.current.server.mappath(/news/text.html);streamreadersr=nu

5、ll;streamwritersw=null;stringstr=;trysr=newstreamreader(temp,code);str=sr.readtoend();/读取文件catch(exceptionexp)httpcontext.current.response.write(exp.message);httpcontext.current.response.end();sr.close();stringhtmlfilename=datetime.now.tostring(yyyymmddhhmmss)+.html;/替换内容/这时,模板文件已经读入到名称为str的变量中了str=

6、str.replace(showarticle,strtext);/模板页中的showarticlestr=str.replace(biaoti,strtext);str=str.replace(content,strcontent);str=str.replace(author,strauthor);/写文件trysw=newstreamwriter(path+htmlfilename,false,code);sw.write(str);sw.flush();catch(exceptionex)httpcontext.current.response.write(ex.message);ht

7、tpcontext.current.response.end();finallysw.close();returntrue;此函数放在conn.cs基类中了在添加新闻的代码中引用注:工程名为hoverif(hover.conn.writefilethis.title.text.tostring),this.content.text.tostring),this.author.text.tostring)response.write(添加成功);elseresponse.write(生成html出错!);模板页text.html代码 showarticlebiaoticontentauthorb

8、iaoticontentauthor提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了html文件中,在实际应用中需要先添加数据库,然后再写入html文件 方案3:给一个客户端参考的例子(sj) 它的作用在于以客户端的方式获取某个页面的代码,然后可以做为其他用途,本例是直接输出 varoxmlhttp=newactivexobject(microsoft.xmlhttp);oxmlhttp.open(get,false);oxmlhttp.send()varostream=newactivexobject(adodb.stream);if(ostream

9、=null)alert(您的机器不支持adodb.stream.)elseostream.type=1;ostream.mode=3;ostream.open();ostream.write(oxmlhttp.responsebody);ostream.position=0;ostream.type=2;ostream.charset=gb2312;varresult=ostream.readtext();ostream.close();ostream=null; varaa=window.open(,) document.write(result);aa.document.write(res

10、ult);方案4:学csdn一样。用xml保存数据,模版xsl也只有一个文件。 使用xml来保存数据,使用xsl来定义模板并且生称数据。可以通过xsl来很方便的在客户端或者服务段显示数据。如果要生成静态叶面那更简单了。去查一下.net的xml类包问题解决。 优点:可以方便快速转换成你想要的格式和内容。缺点:需要学习更多的内容,不好入门。 方案5: 思路一: 1. 利用工具生成html格式的模板,在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板,然后获得前台输入的内容,添加到此模板的标记位置中,生成新文件名后写入磁盘,写入后再向数据库中写入相关数据

11、。2. 使用后台代码硬编码html文件,可以使用htmltextwriter类来写html文件。 优点: 1. 可以建立非常复杂的页面,利用包含js文件的方法,在js文件内加入document.write()方法可以在所有页面内加入如页面头,广告等内容。 2. 静态html文件利用ms windows2000的index server可以建立全文搜索引擎,利用可以以datatable的方式得到搜索结果。而win2000的index服务无法查找xml文件的内容。如果包括了数据库搜索与index索引双重查找,那么此搜索功能将非常强大。 3. 节省服务器的负荷,请求一个静态的html文件比一个asp

12、x文件服务器资源节省许多。 缺点: 思路二: 如果用硬编码的方式,工作量非常大,需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。 因此这里采用的是第一种思路 示列代码 1.定义(template.htm)html模板页面$htmlformat3代码:/-读html模板页面到stringbuilder对象里-stringformat=newstring4;/定义和htmlyem标记数目一致的数组stringbuilderhtmltext=newstringbuilder();try using(strea

13、mreadersr=newstreamreader(存放模板页面的路径和页面名) stringline; while(line=sr.readline()!=null) htmltext.append(line); sr.close(); catch response.write(scriptalert(读取文件错误)/script);/-给标记数组赋值-format0=background=/blog/bg.jpg;/背景图片format1=#990099;/字体颜色format2=150px;/字体大小format3=marquee生成的模板html页面/marquee;/文字说/-替换htm里的标记为你想加的内容for(inti=0;i4;i+) htmltext.replace($htmlformat+i+,formati);/-生成htm文件-try using(streamwritersw=newstr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论