各位好,本人做了一个静态页新闻系统,思路是用替换模板的标签做的。但这个方法,思路还不是很清晰。
比如我发布一条新闻,我就得对新闻列表页,分页显示页都做从新生成,这个到是很清楚。但如上图,假如我在推荐栏#Recommended推荐了一条新的新闻,按照之前的思路,是不是要对其所有存在的页面重新生成最新的推荐栏,从而对所存在的详细页进行重新生成????
如果是这样的话,那点击排行变了,岂不是也要对其所有如上图的内容页进行重新生成???这样就不好了哦!!!!
敬请高人指点思路哦!!!这是很大部分人的疑惑!
8 个解决方案
#1
动态页面转静态页protected override void Render(HtmlTextWriter writer) {
StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);
HtmlTextWriter h=new HtmlTextWriter(r);
base.Render(h);
r.Close();
h.Close();
}
StringWriter wr = new StringWriter();
Server.Execute("", wr);
this.lit.Text = Server.HtmlEncode(wr.ToString());
File.WriteAllText(Server.MapPath(""), wr.ToString());
StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);
HtmlTextWriter h=new HtmlTextWriter(r);
base.Render(h);
r.Close();
h.Close();
}
StringWriter wr = new StringWriter();
Server.Execute("", wr);
this.lit.Text = Server.HtmlEncode(wr.ToString());
File.WriteAllText(Server.MapPath(""), wr.ToString());
#2
凡是过期的内容,都不应该重新输出给客户端。
其实你先搞清楚OutputCache、Cache之类的,学会如何设置缓存依赖(当数据修改时自动清除缓存),在技术上会更上一层楼,因为它是设计完善、帮助齐全的。只是盲目去追一点看起来不需要学习就能炫耀时髦的做法,深入不去的功能你就会失败。
其实你先搞清楚OutputCache、Cache之类的,学会如何设置缓存依赖(当数据修改时自动清除缓存),在技术上会更上一层楼,因为它是设计完善、帮助齐全的。只是盲目去追一点看起来不需要学习就能炫耀时髦的做法,深入不去的功能你就会失败。
#3
如果需求上就是要显示最新的内容,那么就必须“重新生成所有相关的html文件”。所以遇到这种情况,程序员就不管了,让业务人员去叫喊吧。
#4
程序员
往往就不管了
上面我不小心少打了两个字,意思就反了。
上面我不小心少打了两个字,意思就反了。
#5
静态不一定完全静态,想csdn的论坛文章打开也是静态地址,但是可以让回复及时显示,你可以考虑用ajax动态获取数据。数据排行和推荐列表,可以用非固定的,而改成ajax动态获取。
#6
同意
#7
用AJAX吧 如果你发布后不及时的生成静态页面。那数据库里的数据都读不出来。
换句话说。如果是生成静态页面的话 那么AJAX也没用。。。。。。。。。
换句话说。如果是生成静态页面的话 那么AJAX也没用。。。。。。。。。
#8
严重同意4楼。。
#1
动态页面转静态页protected override void Render(HtmlTextWriter writer) {
StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);
HtmlTextWriter h=new HtmlTextWriter(r);
base.Render(h);
r.Close();
h.Close();
}
StringWriter wr = new StringWriter();
Server.Execute("", wr);
this.lit.Text = Server.HtmlEncode(wr.ToString());
File.WriteAllText(Server.MapPath(""), wr.ToString());
StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);
HtmlTextWriter h=new HtmlTextWriter(r);
base.Render(h);
r.Close();
h.Close();
}
StringWriter wr = new StringWriter();
Server.Execute("", wr);
this.lit.Text = Server.HtmlEncode(wr.ToString());
File.WriteAllText(Server.MapPath(""), wr.ToString());
#2
凡是过期的内容,都不应该重新输出给客户端。
其实你先搞清楚OutputCache、Cache之类的,学会如何设置缓存依赖(当数据修改时自动清除缓存),在技术上会更上一层楼,因为它是设计完善、帮助齐全的。只是盲目去追一点看起来不需要学习就能炫耀时髦的做法,深入不去的功能你就会失败。
其实你先搞清楚OutputCache、Cache之类的,学会如何设置缓存依赖(当数据修改时自动清除缓存),在技术上会更上一层楼,因为它是设计完善、帮助齐全的。只是盲目去追一点看起来不需要学习就能炫耀时髦的做法,深入不去的功能你就会失败。
#3
如果需求上就是要显示最新的内容,那么就必须“重新生成所有相关的html文件”。所以遇到这种情况,程序员就不管了,让业务人员去叫喊吧。
#4
程序员
往往就不管了
上面我不小心少打了两个字,意思就反了。
上面我不小心少打了两个字,意思就反了。
#5
静态不一定完全静态,想csdn的论坛文章打开也是静态地址,但是可以让回复及时显示,你可以考虑用ajax动态获取数据。数据排行和推荐列表,可以用非固定的,而改成ajax动态获取。
#6
同意
#7
用AJAX吧 如果你发布后不及时的生成静态页面。那数据库里的数据都读不出来。
换句话说。如果是生成静态页面的话 那么AJAX也没用。。。。。。。。。
换句话说。如果是生成静态页面的话 那么AJAX也没用。。。。。。。。。
#8
严重同意4楼。。