网站首页打开超级慢。
现在考虑换成静态页面瞧瞧
但首页超级大,并且用了超级多的控件
求,如何完美的转成静态页面,我下载的生成器转了都是乱码 
最好给出步骤 因为我是菜鸟 呵呵

解决方案 »

  1.   

    ResponseFilter.cs  文件
    把这个文件放到
    app_code里
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;    public class ResponseFilter : Stream
        {
            private Stream m_sink;
            private long m_position;
            private FileStream fs;
            public ResponseFilter(Stream sink, string Path)
            {
                m_sink = sink;
                // 加上共享可能
                fs = new FileStream(Path, FileMode.OpenOrCreate, FileAccess.Write
                    , FileShare.ReadWrite | FileShare.Delete, 0x1000, false);
            }        public override bool CanRead
            { get { return true; } }        public override bool CanSeek
            { get { return false; } }        public override bool CanWrite
            { get { return false; } }        public override long Length
            { get { return 0; } }        public override long Position
            {
                get { return m_position; }
                set { m_position = value; }
            }        public override long Seek(long offset, System.IO.SeekOrigin direction)
            {
                return 0;
            }        public override void SetLength(long length)
            {
                m_sink.SetLength(length);
            }        public override void Close()
            {
                m_sink.Close();
                fs.Close();
                fs.Dispose();
                m_sink.Dispose();
            }        public override void Flush()
            {
                m_sink.Flush();
            }        public override int Read(byte[] buffer, int offset, int count)
            {
                return m_sink.Read(buffer, offset, count);
            }        public override void Write(byte[] buffer, int offset, int count)
            {
                //
                m_sink.Write(buffer, 0, count);
                //
                fs.Write(buffer, 0, count);
            }    }
    ============
    调用方法 #region 文件不存在,先创建文件if (!System.IO.File.Exists(HtmlFile))
    {
           //初始化数据
           //生成文件
           Response.Filter = new ResponseFilter(Response.Filter, HtmlFile);
    }
    #endregion#region 如果时间超过最大规定时间,重新生成
    else if(ts.TotalMinutes > 20)
    {}
    //直接读取html文件
    else
    {
    fs = new FileStream(HtmlFile, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete, 2, false);
                            byte[] bBuffer = new byte[2];
                            int nRealRead = 0;
                            do
                            {
                                nRealRead = fs.Read(bBuffer, 0, 2);                            
                                Response.BinaryWrite(bBuffer);
                            } while (nRealRead == 2);
                            Response.Flush();
    }
    #endregion
      

  2.   

    在页面里怎么调用,是放在page loade()下》???
      

  3.   

    在页面里怎么调用,是放在page loade()下》???
    filter相当于过滤器,load的时候已经晚了,放init里。protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);    //放这里
    }