index.aspx转静态页面的问题 网站首页打开超级慢。现在考虑换成静态页面瞧瞧但首页超级大,并且用了超级多的控件求,如何完美的转成静态页面,我下载的生成器转了都是乱码 最好给出步骤 因为我是菜鸟 呵呵 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 在页面里怎么调用,是放在page loade()下》??? 在页面里怎么调用,是放在page loade()下》???filter相当于过滤器,load的时候已经晚了,放init里。protected override void OnInit(EventArgs e) { base.OnInit(e); //放这里} 生成html页面出错! 动态显示 外网Iframe不显示 TextBox多行保存到数据库的问题 请教各位大人一个有关分页的问题 菜鸟虚心请教:datagrid排序问题 我发现在弹出窗口后立即跟一条转移代码会导致弹出窗口无法显示,请问有什么办法; doPostBack未定义错误 求救。 ASP.NET MVC EasyUI datagrid条件查询问题 请问如何设置session永不过期 关于DataList嵌套3个datalist的问题 ********treeview当选中前面的复选框时怎么样调用服务器代码******
把这个文件放到
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
filter相当于过滤器,load的时候已经晚了,放init里。protected override void OnInit(EventArgs e)
{
base.OnInit(e); //放这里
}