读书人

生成静态 停顿 进度条 有尝服务解决办

发布时间: 2012-05-12 15:39:31 作者: rapoo

生成静态 停顿 进度条 有尝服务
生成静态功能代码:1 已有现成的生成静态代码(不需要写了) 2 目前是全部一下生成(点下按钮一下要生成的太多了,需要改成每生成一个或几个页面,停顿一下,释放下资源,然后继续生成) 3 做个生成的进度条  有尝的(100元 人民币) 谁做啊 郁闷

[解决办法]
给个思路

JScript code
var nowRow=0//定义当前生成的行  ,maxRow=10//定义每次最大生成的页面数量  ,timeSpan=10;//定义每次生成的间隔时间,单位为1function createStatic(){//这里使用ajax向动态页发送nowRow参数,然后动态页根nowRow来读取数据然后生成静态页面//在生成完成后返回是否已经全部生成,如果全部生成后返回一个标志为如1,然后提示生成完成,然后清除计时器//如果未完成,更新页面显示进度的dom对象}var timer=setInterval("createStatic()",timeSpan*1000);
[解决办法]
今天需要对数据库进行更新,把含html代码的字段先去掉html代码再更新到另外一个字段,和你这个差不多,给你参考下

示例代码点这里下载

update.ashx
C# code
<%@ 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;        }    }} 

读书人网 >Ajax

热点推荐