目前网页html静态化是利用其它的动态技术生成html静态页面,还不是静态网站。因为的确是这样的,生成html静态网页有一定的好处。
     一、加快页面打开浏览速度,静态页面无需连接数据库教程打开速度较动态页面有明显提高;
     二、有利于搜索引擎优化seo教程,baidu、google都会优先收录静态页面,不仅被收录的快还收录的全;
     三、减轻服务器负担,浏览网页无需调用系统数据库;
     四、网站更安全,html页面不会受asp相关漏洞的影响;
     观看一下大一点的网站基本全是静态页面,而且可以减少攻击,防sql注入。数据库出错时,不影响网站正常访问。
     生成html文章虽操作上麻烦些,程序上繁杂些,但为了更利于搜索,为了速度更快些,更安全,这些牺牲还是值得的。
//生成静态页

protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e)

{

string n_id = this.gridview1.datakeys[e.rowindex]["nid"].tostring();

sqlconnection conn = new sqlconnection("server=.;uid=sa;pwd=;database=dress");

sqlcommand cmd = new sqlcommand("select nid,n_title,n_content,n_pic,n_date from p_news where nid="+n_id,conn);

conn.open();

sqldatareader dr = cmd.executereader();

//获取新闻发布的时间

string date = "";

if(dr.read())

{

date = convert.todatetime(dr["n_date"]).tostring("yyyymmddhhmmss_");

//调用静态生成的方法

transferstatic(dr["n_title"].tostring(), dr["n_content"].tostring(), dr["n_pic"].tostring(), date, n_id);

response.write("<script>alert('www.3ppt.com静态页面生成成功!');location='bulidstaticpage.aspx'</script>");

}

}

//转换静态方法

public bool transferstatic(string title,string content,string pic,string date,string nid)

{

//输出路径

string outpath = server.mappath("~/newdetails");

//简体中文

encoding encoding = encoding.getencoding("gb2312");

//读取模版文件

string htmlmodel = server.mappath("~/htmlmodel/newdetail.html");

streamreader sr = null;

streamwriter sw = null;

string str = "";//保存内容的字符串

try

{

sr=new streamreader(htmlmodel,encoding);

str=sr.readtoend();//从头读到尾

}

catch(exception e)

{

response.write(e.message);

response.end();

sr.close();

}

//删除指定的页面

protected void button2_click(object sender, eventargs e)

{

string path = server.mappath("~/newdetails");

file.delete(path + "//" + this.listbox1.selectedvalue);

//page.clientscript.registerclientscriptblock(this.gettype(), "信息处理", "<script>alert('删除成功!');location='bulidstaticpage.aspx'< /script>");

page.clientscript.registerstartups教程cript(this.gettype(), "信息处理", "<script>alert('删除成功!');location='bulidstaticpage.aspx'< /script>");

}

生成静态页列表

//得到静态页面的路径

public string htmlpath(datetime date,string nid)

{

string path = "newdetails/" + date.tostring("yyyymmddhhmmss_") + nid + ".html";

return path;

}

//生成静态列表

protected void button1_click(object sender, eventargs e)

{

sqlconnection conn = new sqlconnection("server=.;uid=sa;pwd=;database=dress");

sqldataadapter da = new sqldataadapter("select nid,n_title,n_content,n_pic,n_date from p_news",conn);

dataset ds = new dataset();

da.fill(ds);

string str = "";

for (int i = 0; i < ds.tables[0].rows.count;i++)

{

//取时间

string date = convert.todatetime(ds.tables[0].rows[i]["n_date"]).tostring("yyyymmddhhmmss_");

//取编号

string nid = ds.tables[0].rows[i]["nid"].tostring();

//构造文件名

string pagename = date + nid + ".html";

//构造字符串

str += "<tr><td width=360px>"+"<a href='newdetails/"+pagename+"'>"+ds.tables[0].rows[i]["n_title"].tostring()+"</a>"+"</td><td width=200px>"+ds.tables[0].rows[i]["n_date"].tostring()+"</td></tr>";

}

//调用转换方法生成静态页

transferstatic(str);

}

//生成静态页

public bool transferstatic(string strall)

{

//输出路径

string outpath = server.mappath("~/");

encoding encoding = encoding.getencoding("gb2312");

//读取模版文件

string htmlmode = server.mappath("~/htmlmodel/newslist.html");

streamreader sr = null;

streamwriter sw = null;

string str = "";

try

{

sr = new streamreader(htmlmode, encoding);

str = sr.readtoend();

}

catch (exception e)

{

response.write(e.message);

response.end();

sr.close();

}

//构造要生成的静态页面的名字

string pagename = "newslist.html";

//开始替换内容

str = str.replace("newslist", strall);

//写文件

try

{

sw = new streamwriter(outpath + pagename, false, encoding);

sw.write(str);//将字符串str写到文件

sw.flush();

}

catch (exception e)

{

response.write(e.message);

response.end();

}

finally

{

sw.close();

}

return true;

}

在前台绑定新闻标题和时间:

<table>
            <asp:repeater id="repeater1" runat="server">
                <itemtemplate>
                        <tr>
                            <td width="360px"><a href='<%# htmlpath(convert.todatetime(eval("n_date")),eval("nid").tostring())%>'><%# eval("n_title") %></a></td>
                            <td width="200px"><%# eval("n_date") %></td>
                        </tr>
                </itemtemplate>
            </asp:repeater>

转载于:https://www.cnblogs.com/manloudoushiwo/archive/2011/04/15/2016860.html

asp.net中关于静态页面生成的代码实例相关推荐

  1. java静态页面我都做不出_Java高并发:静态页面生成方案

    提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等.今天要说的就是生成静态页面的方式.这个也是我近期一直在搞的一个问题,近期在做使用html + servlet做个人网站,为什么是这2个东 ...

  2. 雨尘SEO静态页面生成系统源码V1.3版

    一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页,多个模板,用来做SEO是非常不错的源码,同时还支持百度自动推送和网站地图sitemap功能. 网上很多标1.3的,其实就是改了版本号, ...

  3. 静态页面生成 (SSG)

    静态页面生成 (SSG) SSG:Static Site Generation,静态页面生成: SSR:Server Side Rendering,服务端渲染: 什么是静态网站(static webs ...

  4. 在ASP.NET中指定出错页面,不让代码外泄!

    在ASP.NET中指定出错页面,不让代码外泄!在ASP.NET中原始的出错页面会暴露部分源代码,由此带来了潜在的安全隐患. ASP.NET允许应用程序出错时显示用户指定的页面,方法是在web.conf ...

  5. PHP随机静态页面生成系统源码雨尘SEO系统

    介绍: PHP随机静态页面生成系统源码雨尘SEO系统v1.3 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码. 雨尘SEO静态页面生成系统源码v1.3版本 ...

  6. 超级SEO静态页面生成系统源码

    介绍: 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码,持文章采集,功能,多模板选择批量生成单页,支持百度自动推送和网站地图sitemap功能. 安装教程 ...

  7. 雨尘SEO静态页面生成系统版本源码3秒钟可生成上千条单页面SEO必备神器

    简介: 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码. 雨尘SEO静态页面生成系统PHP网站源码v1.3版本,支持文章采集,功能,多模板选择批量生成单页 ...

  8. PHP随机静态页面生成系统源码雨尘SEO系统v1.3

    介绍: PHP随机静态页面生成系统源码雨尘SEO系统v1.3 一款随机静态页面生成系统,一秒钟可生成上千条单页面,批量生成单页用来做SEO是非常不错的源码.雨尘SEO静态页面生成系统源码v1.3版本, ...

  9. asp.net中的异步页面

    要想了解asp.net 2.0的异步页的处理过程,先列出页面的生命周期: 1 :init 事件: 页面初始化 ,初始化设置. 2: loadviewstate方法: 加载视图状态, 填充viewsta ...

最新文章

  1. 全新版本仿网易云音乐来啦
  2. 苍天啊,请你不要再哭泣
  3. Docker源码分析(四):Docker Daemon之NewDaemon实现
  4. ASP.NET Core开发-使用Nancy框架
  5. python编程狮题库答案_‎Python编程狮-零基础学Python dans l’App Store
  6. Linux namespace - Docker 背后的故事
  7. 如何判断 cxgrid 双击了哪一列_学会根据三视图判断组成几何体的个数,助你中考数学满分...
  8. 使用单/多线程执行程序展示
  9. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十九) 落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏②...
  10. mysql免安装 配置_MySql免安装版配置方法
  11. JavaCV入门使用
  12. nuxt 低版本浏览器不兼容处理
  13. ros重置后地址_RouterOS中BGP软重新配置 - ROS软路由论坛 - ROS教程 - RouterOS - ROS之家 - ROS脚本生成器 - Powered by Discuz!...
  14. Android手机会中电脑病毒么,安卓手机中木马病毒怎么办
  15. ArduinoUNO实战-第八章-无源蜂鸣器
  16. 计算机未来走向论文,计算机应用技术于目前的应用情况和未来走向
  17. STM32 利用cubemx配置正点原子4.3寸TFT-LCD 驱动芯片NT35510
  18. 2022年5月语音合成(TTS)和语音识别(ASR)论文月报
  19. C语言的从零开始和我自己的心路历程
  20. C++ typename详解

热门文章

  1. Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
  2. LINQ体验(6)——LINQ to SQL语句之Join和Order By
  3. 【目录】 Git 教程
  4. Linux mysql federated_MySQL的FEDERATED引擎实现类Oracle的DBlink
  5. jupyter ipython display_Tensorflow从jupyter / Ipython运行动画
  6. 科幻画图片大全浇水机器人_从机器人到智能机器人,谭建荣院士为温肯师生揭秘新科技...
  7. #1098 : 最小生成树二·Kruscal算法
  8. 历届试题 核桃的数量
  9. MySQL 8.0 Server层最新架构详解
  10. 排查指南 | 两个案例学会从埋点排查 iOS 离线包