asp.net动态页面如何静态页面

本文介绍了一种将动态页面转换为静态页面的技术方案,通过抓取动态内容并将其保存为静态HTML文件,有效减轻服务器负担。示例代码展示了从指定URL获取页面内容并将其保存到本地的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c#程序的的控件如果都写在ranat=server让他们在服务器运行,就会加大服务器的负担。现贴出一种将动态页面 转换为静态页面的主要方法写出来供爱好编程的人共同学习。

源码如下:

 /// <param name="url">页面的地址</param>
        /// <param name="fna">生成的静态页面的名称</param>
        /// <returns></returns>
        private bool CreateList(string url, string fna)
        {
            bool ok;
            //准备生成
            string strHtml;
            StreamReader sr = null; //用来读取流
            StreamWriter sw = null; //用来写文件
            Encoding code = Encoding.GetEncoding("utf-8"); //定义编码
            //构造web请求,发送请求,获取响应
            WebRequest HttpWebRequest = null;
            WebResponse HttpWebResponse = null;
            HttpWebRequest = WebRequest.Create(url);
            HttpWebResponse = HttpWebRequest.GetResponse();

            //获得流
            sr = new StreamReader(HttpWebResponse.GetResponseStream(), code);
            strHtml = sr.ReadToEnd();

            //写入文件
            try
            {
                sw = new StreamWriter(fna, false, code);
                sw.Write(strHtml);
                sw.Flush();
                ok = true;
            }
            catch (Exception ex)
            {
                HttpContext.Current.Response.Write("<p>写入文件出错:" + ex.Message);
                HttpContext.Current.Response.End();
                ok = false;
            }
            finally
            {
                sw.Close();
            }
            return ok;
        }


        //调用上面的方法,我这是点击按钮执行
        protected void Button3_Click(object sender, EventArgs e)
        {
            string url = @"页面的地址,注意,这个不是物理路径!!
            //html页面文件名命名
            string fna = Server.MapPath("") + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString() + ".html";//当然后缀名自己加,一般的是.html、.htm
            if (CreateList(url, fna))
            {
                Response.Write("<p>生成文件成功:" + fna);
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值