静态页面生成技术咨询!
问题:公司现在做的这个项目,要求全站生成html页面,现在以确定终级文章页面用模板生成,但是首页和二,三级页面要怎么生成html页面?
1.因为首页全都是一些二,三级页面分类的标题,内容也比较多,所以不能用模板生成!
2.用url重写生成伪html页面,这倒是最好的办法,可公司现在没有自己的服务器不能设置iis,这办法好像也行不通.
3.IO输出生成html,这种方法怎么做的页面上链接的正确性?
4.偶天天上csdn怎么可用分一分也没加!
5.请大家帮帮忙,周三交货:(
分不够还可以在加!
先谢了!
[解决办法]
二三级页面的链接是指定地址的吧?比如说,新闻,公告。。。。
如果不是指这下地址,那在生成的时候指定
比如文章的标题,
[解决办法]
帮顶
[解决办法]
[解决办法]
没用过,帮顶
[解决办法]
啊没有自己的IIS还生成静态的干什么用呀?
[解决办法]
你这个要求的话就需要自动的生成栏目,
首页先建立元素(可能是一条标题),模板(可能是一块栏目),最后是一张页面,里面包含着各种元素和模板;最后生成静态的页面;
你如果按照这样的思路做这个项目的话,别说周三了,你长假结束也不一定做得完的
[解决办法]
一般只有具体内容才生成静态的
首页生成,调用这个方法
public bool GetUrltoHtml(string Url,string MapPath)
{
//try
//{
MapPath = HttpContext.Current.Server.MapPath(MapPath);
//if(File.Exists(MapPath))
//{
//File.Delete(MapPath);
//}
StringBuilder htmltext=new StringBuilder();
System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url);
// Get the response instance.
System.Net.WebResponse wResp =wReq.GetResponse();
// Read an HTTP-specific property
//if (wResp.GetType() ==HttpWebResponse)
//{
//DateTime updated =((System.Net.HttpWebResponse)wResp).LastModified;
//}
// Get the response stream.
System.IO.Stream respStream = wResp.GetResponseStream();
// Dim reader As StreamReader = New StreamReader(respStream)
Encoding code = Encoding.GetEncoding( "gb2312 ");
using (StreamReader reader = new StreamReader(respStream,code))
{
string line;
while ((line = reader.ReadLine()) != null)
{
htmltext.Append(line+ "\r ");
}
reader.Close();
}
using(StreamWriter sw=new StreamWriter(MapPath,false,System.Text.Encoding.GetEncoding( "GB2312 ")))
{
sw.WriteLine(htmltext);
sw.Flush();
sw.Close();
return true;
}
//}
//catch
//{
//return false;
//}
}
[解决办法]
我刚刚在博科写了一篇。
qinghunt.cnblogs.com
第一个问题我不是很理解,分类标题怎么就不能了?在相应页面的添加模块设置triger,有新内容添加就Render一次新页面(其实我是使用删除静态页面)。所以首页是可以的。
2.略过。
3.如果aspx Render到客户端的没有问题,那么这里就不应该有问题。
4.RP问题,呵呵
5.多多益善。
[解决办法]
主要的思想是,通过在basePage重载OnInit方法(判断aspx对应的静态页面是否存在,来决定是生成还是重定向)和Render方法(到这里了可以确定页面是不存在的,所以把要生成的内容流存到静态页面中去,而不是直接render到客户浏览器,最后重定向)。在内容没有更新时,页面请求都会被OnInit重定向到静态页面(也可以确定是最新内容)。当有内容更新的同时,删除内容相关的所有静态页面(可动态配置),达到更新静态页面的目的。另外注意一点的是,我的实际使用中,因为不同页面定位的路径不一样,所以我写了一个BasePage,还有多个moduleBasePage,最后页面是继承的moduleBasePage,我想你也会遇到一样的问题。
[解决办法]
其实是很没必要把首页和二、三级页面生成静态的
这样做只要数据库一改变,你就得重新生成一次
[解决办法]
mark
------解决方案--------------------
删除多少你不用管啊。比如,新闻跟首页和新闻主页和新闻页面向关,修改一条新闻,则只需要删除首页,新闻主页和这条新闻本身的静态页,也就三个嘛!而且,这些都是程序作的,又不需要你手动作,而这样带来的性能提升,不知道好多少呢。伪装html没什么实际意义,每次访问相同页面都需要render甚至query数据库,大量浪费服务器资源。
[解决办法]
另一方面,因为数据一般是批量添加,也就是说一旦添加了,基本上一天都不会动,所以每一次添加完毕后的第一次访问生成静态页是有意义的。特别是那种首页什么,每次请求都要查询数据库,很浪费。
[解决办法]
谁说新闻是批量添加哦。。。
新闻基本都是即时的
难道今天早上你添加了该添加的新闻
到下午有一条重大新闻:美国白宫被夷为平地,你就不添加了,要等到第二天才一起批量添加吗
[解决办法]
我是说公司新闻那种。呵呵。如果网站不停的都在变,那当我没有说。
其实,因为多数情况下,用户请求render回的页面内容都是一样的,所以从这个角度看,把这种render内容缓存下来,在没有更新的情况下重复使用,是很合理的。就算是更新频繁,因为是服务器上的一次性操作,也不会有太大的影响。据我所知,其实.net 2.0本身就可以通过设置来实现部分的缓存了,不过不是全页的
[解决办法]
UP```
[解决办法]
用 shtml ,包含不同的html到一个shtml里。
[解决办法]
采用XML+XSLT技术。
[解决办法]
关注一下……
[解决办法]
网上已经有人做了新闻发布系统了,为什么不用一个?
[解决办法]
up
[解决办法]
我那个里边也有论坛,新闻只是举个例子……
我始终觉得,一个地方更新的快,那意味着访问很多。所以静态化就更有意义。
[解决办法]
没有自己的服务器的网站 能有多大流量啊
用的着生成静态页面吗?
[解决办法]
MARK
[解决办法]
链接在数据库里统一分配好,或者设置一个URL分配规则,这样就能保证链接的正确性。
[解决办法]
生成静态页的方法是十年前asp、jsp那种软件比较时髦的做法。
asp.net2.0你可以使用缓存获得更好的性能和功能。最简单的一种根据数据库进行缓存控制的方法,可以参考:
http://www.google.com/search?q=outputcache%20sqldependency&hl=zh-CN&newwindow=1&rls=com.microsoft%3Aen-US&lr=lang_zh-CN%7Clang_zh-TW&nxpt=20.780711264233730434919
[解决办法]
mark
[解决办法]
十年前 --> 七年前
打字打错了。
sqlDependency是适合使用SQL Server的人使用的。其实我觉得它设计得不好,不够灵敏。
不过我并不使用SQL Server数据库。我使用的数据库具有缓存,并且每一个对象都有版本管理标记(类似于SQL Server的记录时间戳),因此我可以继承CacheDependency写一个自己的Dependency,每当记录更新的时候让缓存失效。
[解决办法]
顶
[解决办法]
关注
[解决办法]
帮顶!用空间可以找我啦! ~~~
酷睿数据-ASP.NET+SQL空间大促销,买两年送一年
-----------------------------------
虚拟主机,买2年送1年,3天免费试用
╔服╗┊域┊虚┊企┊网┊网┊主┊主┊
┃务┃┊名┊拟┊业┊站┊站┊机┊机┊
┃项┃┊注┊主┊邮┊建┊推┊租┊托┊
╚目╝┊册┊机┊局┊设┊广┊用┊管┊
-----------------------------------
支持语言:ASP/ASP.NET/SQL/ACCESS
-----------------------------------
服务器:双至强2.4*2
内 存:2048M
硬 盘:SCSI73G
机 房:北京亦庄网通机房100M
-----------------------------------
自由选择空间大小/租用期限/自由选择空间类型
自由选择域名绑定/子目录绑定/自由选择IIS连接数/CPU使用率
自由选择Mssql 数据库 / Mysql 数据库
主机空间时实开通/统一账户管理/7x24x365技术服务支持
采用自行开发的全球领先的虚拟主机控制面板 new!
服务器位置任意选择,主机空间大小随意设置, 7x24x365技术服务支持
品牌服务器品质卓越,在线 实时开通立即使用
2.5G高速带宽接入 数据定时备份避免灾难
自由选择域名/子目录绑定数,任意添加修改域名/子目录绑定
自由修改默认首页,自由修改404 / 500 错误页
自由修改FTP账户密码,自由设置同一主机多个FTP账户
自由设置IIS防盗功能,随意开启/关闭站点日志功能
自由在线解压缩,您的上传将会变得越来越简单
自由设置 MIME 文件类型,自由设置受限IP地址
自由停止 / 启动 / 回收站点程序池
自由查看 / 刷新空间
------------------------------------
http://www.myidc.info
QQ:43909413
MSN:gongzhw@hotmail.com
------------------------------------
[解决办法]
关注
[解决办法]
首页的生成应该先分块,一个栏目对应一块
然后生成块文件和调用代码
注意首页要用.shtml作扩展名
[解决办法]
mark!
[解决办法]
关注
[解决办法]
我一般不采用模版方法,我也是采用gui0605(千分散尽还复来) 的做法,在aspx和jsp中生成静态页面都是采用这种做法。
[解决办法]
关注一下
[解决办法]
up
[解决办法]
就是网站内容管理系统吗,英文叫CMS,网上搜一下遍地都是。我们公司就用java开发了一个,可以生成12345...n级页面和内容页
[解决办法]
见世面了,UP!
[解决办法]
原先我用替换的方法生成Html,后来发现如果页面和数据搞在一起,以后修改版面会有问题。
现在是用Html用js调用XML!现在的论坛就是改成这样子了。www.irplay.com/bbs/
[解决办法]
XML是用asp.net生成的。
[解决办法]
学习
[解决办法]
伪静态比较好实现
见过一些大网站是将url重写后转到后台服务器
前端用代理服务器 比如freebsd + bind
[解决办法]
xx
[解决办法]
最关键的是,如何做到当数据库中有新内容时才更新页面?
[解决办法]
最关键的是,如何做到当数据库中有新内容时才更新页面?
[解决办法]
我也想了解有什么好方法,顶一下
[解决办法]
研究框架,算法,欢迎加入QQ群33397644
[解决办法]
MARK
[解决办法]
可以参考一下DEDECMS的生成静态文件的方法
是采用模板的方式
[解决办法]
mark