问题描述
现在的后台添加文章之后,可以自动生成该文章的所属列表页和该文章的内容页面,但调用此文章的页面该如何生成?比如首页,首页此类文章的生成标签可能是这样写的{List_5_999},大致的意思是从类别ID为999的里面选择前5条记录,这前5条记录可能包含刚才添加进去的,也可能不包含,如果添加文章的时候把所有的页面的所有的标签都计算一遍,只要含这个文章的页面就重新生成,我个人觉得这是个笨办法,还有没有其他办法,提交文章的同时把所有含有该文章的页面全部重新生成一遍,请解答求思路
解决方案
解决方案二:
调用此文章的页面为什么要重新生成,html文件名变了?你不是已经把文件名存到数据库里去,其他页面从数据库里取出新名字就好了啊
解决方案三:
换一个思路行不行不要真的静态用伪静态
解决方案四:
晕死,你这样的思路是要把地球人全搞死。假设说每天凌晨2点开始生成所有的html页面,那么从1:50分这个时刻起,就不再允许“添加文章了”。你以为每一次添加文章都知道该重新生成哪些html文件?那会疯的。
解决方案五:
我在这个帖子中回复了,asp.net是“动态”决定如何保存html高速缓存内容的。它不需要静态地把所有页面都产生一遍。
解决方案六:
如果想让系统具有很好的适应性,例如可以随时发新文章来更新,那么你就要使用asp.net的页面缓存技术。不过这需要头脑里有点东西,能够理解系统流程上的区别。如果全靠抄代码,自己不去想想,可能理解不了“一次性产生html页面”跟“随时产生html缓存内容”的不同系统操作流程上的区别。
解决方案七:
不懂楼上哎
解决方案八:
sp1234的随时产生html缓存内容是怎么个意思?
解决方案九:
你可以将主页面设置为shtml格式的,然后这种{List_5_999}的小分块可以作为单独的页面用include标签包含到主页面里面去,添加删除更新页面的时候向数据库写入一条更新记录,然后定时去取这个更新记录更新每个小块的内容即可。整个主页面不需要动。如何快速的获取哪些分块需要更新,你可以制定一些规则,比如分块的名称包含分类id等。怎么方便怎么弄
解决方案十:
有没有这样一种可能?通过一种手段是第一个访问页面的人展示aspx,第二个访问html,比如后台更新了一条记录之后,访问首页的时候是index.html,但其实是访问index.aspx,index.aspx除了展示页面的内容外还有个功能就是生成一个真正的index.html,下一个访问的人就直接访问index.html???
解决方案十一:
支持我自己...
解决方案十二:
将Word文档转换成HTML网页//转换按钮事件protectedvoidButton1_Click(objectsender,EventArgse){if(ListBox1.SelectedIndex>=0){WordToHtmlFile(ListBox1.SelectedValue);}}//实施转换publicvoidWordToHtmlFile(stringWordFilePath){try{Word.ApplicationwApp=newWord.Application();//创建Application对象objectdocPath=WordFilePath;//指定原文件和目标文件stringhtmlPath=WordFilePath.Substring(0,WordFilePath.Length-3)+"html";//设置保存的HML网页路径objectTarget=htmlPath;objectUnknown=Type.Missing;//缺省参数objectreadOnly=true;//只读方式打开Word.Documentdocument=wApp.Documents.Open(refdocPath,refUnknown,//打开doc文件refreadOnly,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown);objectformat=Word.WdSaveFormat.wdFormatHTML;//指定格式document.SaveAs(refTarget,refformat,//转换格式refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown,refUnknown);((Word._Document)document).Close(refUnknown,refUnknown,refUnknown);//关闭文档和Word程序((Word._Application)wApp).Quit(refUnknown,refUnknown,refUnknown);//关闭对象}catch(Exceptione){Response.Write("<script>alert('"+e.Message+"');</script>");}}//再有就是:点击文章标题等调用数据库内容自动生成静态网页?你问的是那一类呢?如果是点选标题形式的话,请另行提问:下次给你贴出来。
解决方案十三:
楼上非所答啊有没有这样一种可能?通过一种手段是第一个访问页面的人展示aspx,第二个访问html,比如后台更新了一条记录之后,访问首页的时候是index.html,但其实是访问index.aspx,index.aspx除了展示页面的内容外还有个功能就是生成一个真正的index.html,下一个访问的人就直接访问index.html???
解决方案十四:
引用9楼atmo的回复:
有没有这样一种可能?通过一种手段是第一个访问页面的人展示aspx,第二个访问html,比如后台更新了一条记录之后,访问首页的时候是index.html,但其实是访问index.aspx,index.aspx除了展示页面的内容外还有个功能就是生成一个真正的index.html,下一个访问的人就直接访问index.html???
你说的手段就是伪静态用urlrewrite实现如果数据不经常更新还可以用缓存你搜索一下我上面提到的关键字把会有答案的
解决方案十五:
网站页面都换成类,继承IHttpHandler,彻底抛弃aspx,然后使用缓存技术加上时间过期机制,让页面缓存超时后自动更新缓存,这么做的方法效率是最高的。内存中的数据读起来,比你用ssd固态硬盘都快几十倍。最主要网站彻底告别维护,所有页面都是自动处理的。而且url的扩展名可以任意设置,aspx也行,.jsp也行,可以说就是个伪静态。但是使用asp.net做网站为什么要用urlrewrite呢?我很是不理解,asp.net的处理程序天然的可以映射成各种格式的扩展名,或者没有扩展名。urlrewrite的由来一定是由于脚本语言不支持处理程序映射,才发明的这个外挂的映射程序。比如asp脚本语言如果你的内容页数量非常庞大,就仅仅将首页和列表页做缓存处理,而内容页依然只生成静态页。如果你的服务器内存足够大,16G甚至32G,那么建议你把全部页面都存入内存,包括图片。这样能有效减少硬盘碎片,延长硬盘寿命。技术就是这么个技术,实现起来无比艰难,