日期:2014-05-16 浏览次数:20746 次
var nowRow=0//定义当前生成的行 ,maxRow=10//定义每次最大生成的页面数量 ,timeSpan=10;//定义每次生成的间隔时间,单位为1 function createStatic(){ //这里使用ajax向动态页发送nowRow参数,然后动态页根nowRow来读取数据然后生成静态页面 //在生成完成后返回是否已经全部生成,如果全部生成后返回一个标志为如1,然后提示生成完成,然后清除计时器 //如果未完成,更新页面显示进度的dom对象 } var timer=setInterval("createStatic()",timeSpan*1000);
------解决方案--------------------
今天需要对数据库进行更新,把含html代码的字段先去掉html代码再更新到另外一个字段,和你这个差不多,给你参考下
示例代码点这里下载
update.ashx
<%@ WebHandler Language="C#" Class="update" %> //将含有html代码的内容转为换纯文本的处理文件 using System; using System.Web; using System.Data; using System.Data.SqlClient; using System.Text.RegularExpressions; public class update : IHttpHandler { private bool IsInt(string v) { if (v == null) return false; v = v.Trim(); return Regex.IsMatch(v, @"^\d+$"); } private string RemoveHTML(string v) { if (v == null) return v; return Regex.Replace(v, " |&[a-z]+;|'|\"|<[^>]+>|,|,|\\.|。", "", RegexOptions.Compiled | RegexOptions.IgnoreCase); } public void ProcessRequest(HttpContext context) { context.Response.Charset = "utf-8"; context.Response.ContentType = "text/html"; HttpRequest Request = context.Request; string rowIndex = Request.Form["ri"], mr = Request.Form["mr"], Sql = ""; int iRowIndex = 0, iMR = 10;//如果未传递每次生成多少行,则默认10行,如果处理的行号不为整数,默认从第0行开始 if (IsInt(mr)) iMR = int.Parse(mr); if (IsInt(rowIndex)) iRowIndex = int.Parse(rowIndex); Sql = "select top " + iMR + " * from(select top " + (iMR * iRowIndex + iMR) + " [id],content from info order by [id])tmp order by [id] desc";//注意这里取数据的方式,id为自动增长的字段,可以不连续 SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=newsdb;");//注意修改你的驱动。。。。。。 cn.Open(); bool Ok = true; try { DataTable dt = new DataTable(); new SqlDataAdapter(Sql, cn).Fill(dt);//============取数据,下面的代码改为你的生成静态页面的代码 SqlCommand cm = new SqlCommand(); cm.Connection = cn; string tmp=""; foreach (DataRow dr in dt.Rows) { tmp = RemoveHTML(dr[1].ToString()); if (tmp.Length > 450) tmp = tmp.Substring(0, 450); cm.CommandText = "update info set purect='"+tmp+"' where [id]=" + dr[0]; cm.ExecuteNonQuery(); } dt.Dispose(); } catch { Ok = false; } cn.Close(); if (!Ok) throw new Exception("操作失败~~~");//抛出错误,让ajax重新执行当前操作 } public bool IsReusable { get { return false; } } }