热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请问如何自动生成静态页面?

现在有一个页面a.aspx,里面是一个读取数据库生成的datagrid,现在有一个需求,就是要每隔10分钟就查询一次数据库,将a.aspx的内容自动生成a.html,请问应该如何做?是要做个应用程序常
现在有一个页面a.aspx,里面是一个读取数据库生成的datagrid,现在有一个需求,就是要每隔10分钟就查询一次数据库,将a.aspx的内容自动生成a.html,请问应该如何做?是要做个应用程序常驻服务器内存吗?还是通过其他方式就可以解决?谢谢。

8 个解决方案

#1


做一个服务程序,然后每10分钟下载一下a.aspx,将获得的信息保存到a.html里面。

#2


StringWriter sw1 = new StringWriter();
XunTong.Data.User.allUser p = new XunTong.Data.User.allUser();
DataSet ds = new DataSet();
ds.Tables.Add(p.GetCpType());
XmlDataDocument xmlDoc = new XmlDataDocument(ds);
XslTransform xsltran = new XslTransform();
xsltran.Load(Server.MapPath("XSLTFile1.xslt"));
xsltran.Transform(xmlDoc,null,sw1);
this.span1.InnerHtml = sw1.ToString();
if(Request.QueryString["id"]!=null)
{
Random a = new Random();
string strAdd = Convert.ToString(a.Next()*10000);
string filename =  DateTime.Now.ToString ("yyyyMMddHHmmssms")+strAdd+".html";
XmlTextWriter writer = new  XmlTextWriter(Server.MapPath(filename),System.Text.Encoding.UTF8);
xsltran.Transform(xmlDoc, null, writer);
p.IsHtml(long.Parse(Request.QueryString["id"]),filename);
writer.Close();
}

用xsl模版可以生成静态的页面

#3


应用XMLHTTP,相关文章可参考:http://renyu732.cnblogs.com/favorite/29794.html

#4


如何利用ASP.NET技术动态生成HTML页面
http://tech.sina.com.cn/c/2004-09-09/1034421727.shtml

#5


我做过这样的 给个例子你看
这个是模板文件temp.htm的一个截取片断
 
                       
              $down[23]
              
            
反正就是$down[22]这样的东西放到模板页面上 然后在aspx页面执行的时候 将数据库里的东西查询出来 将$down[22]按顺序替换掉
  下面是aspx文件的后台代码:
public void build(object sender,EventArgs e)
{
flash.mydata mydata=new flash.mydata();
//最近更新
string SQL1="select top 4 * from flash_sogua_com_flash order by addtime desc";
dt1=mydata.executeDataTable(SQL1);

//建立数组并赋值
//最近更新
string[] format1=new string[16];
format1[0]=dt1.Rows[0]["id"].ToString();
format1[1]=dt1.Rows[0]["dir"].ToString();
format1[2]=dt1.Rows[0]["fileid"].ToString();
format1[3]=dt1.Rows[0]["name"].ToString();
format1[4]=dt1.Rows[1]["id"].ToString();
format1[5]=dt1.Rows[1]["dir"].ToString();
format1[6]=dt1.Rows[1]["fileid"].ToString();
format1[7]=dt1.Rows[1]["name"].ToString();
format1[8]=dt1.Rows[2]["id"].ToString();
format1[9]=dt1.Rows[2]["dir"].ToString();

string path = HttpContext.Current.Server.MapPath("");
Encoding code = Encoding.GetEncoding("gb2312");
// 读取模板文件
string temp = HttpContext.Current.Server.MapPath("temp.htm");
string ad_temp = HttpContext.Current.Server.MapPath("ad_temp.htm");
string ad1_temp = HttpContext.Current.Server.MapPath("ad1_temp.htm");

StreamReader sr=null;
StreamReader sr1=null;
StreamReader sr2=null;
StreamWriter sw=null;
StreamWriter sw1=null;
StreamWriter sw2=null;
string str="";  
string str1=""; 
string str2=""; 
try
{
sr = new StreamReader(temp,code);
str = sr.ReadToEnd(); // 读取文件
sr1 = new StreamReader(ad_temp,code);
str1 = sr1.ReadToEnd(); // 读取文件
sr2 = new StreamReader(ad1_temp,code);
str2 = sr2.ReadToEnd(); // 读取文件
}
catch(Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
sr1.Close();
sr2.Close();
}
//广告
for(int i=0;i<20;i++) 
{
if(i==3||i==7||i==11||i==15||i==19)
  {
  if(format_ad[i].Length>7)
  {
  format_ad[i]=format_ad[i].Substring(0,7);
  }
  }
str1 =str1.Replace("$ad_new["+i+"]",format_ad[i]);  
str2 =str2.Replace("$ad_new["+i+"]",format_ad[i]);  
}
//新闻
for(int i=0;i<16;i++) 
{ if(i==3||i==7||i==11||i==15){
  if(format1[i].Length>7)
  {
  format1[i]=format1[i].Substring(0,7);
  }
  }
str =str.Replace("$new["+i+"]",format1[i]);  
}
// 写文件
try
{
sw = new StreamWriter(path+"/index.html" ,false,code);
sw.Write(str);
sw.Flush();
sw1 = new StreamWriter(path+"/html/ad_kugoo_news.html" ,false,code);
sw1.Write(str1);
sw1.Flush();
sw2 = new StreamWriter(path+"/html/latestflash.html" ,false,code);
sw2.Write(str2);
sw2.Flush();
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
sw1.Close();
sw2.Close();
}

#6


然后再用TechnoFantasy(冰儿马甲www.applevb.com) 的方法  
做一个服务程序,然后每10分钟下载一下这个aspx文件。
  
 

#7


System.IO.StreamWriter就可以啊

#8


<%@ Page validateRequest="false" %>
<%@ Import NameSpace="System.Xml"%>
<%@ Import NameSpace="System.IO"%>









推荐阅读
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
author-avatar
明年夏天1314520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有