php生成大量静态页面如何解决效率问题

jimmy0223 2006-07-02 10:43:36
正在做一个小说网站,原来的数据已经有4g,后台生成小说目录静态页面是通过循环提交生成。而前台提交小说后也要立即生成小说目录,这个时候为了不用提交者等待生成小说目录,希望能够实现提交后立即转向提交成功的页面,同时也能够自动生成小说目录静态页面。
请问大虾们怎么实现?~~可以用多进程或多线程实现吗?具体的代码怎样?我参考过网上说的伪多线程,但好像也是顺序执行的,不能并发执行(也就是提交者的页面跳转到成功页面的同时自动生成小说目录静态页面)。听说能够利用apache的多进程实现(启动别的端口运行新进程,而web端口继续监听用户请求),但是找不到相应的代码例子,也找不到相应的说明~~~~
请大虾们伸出虾手~~~
...全文
654 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ten789 2006-07-02
  • 打赏
  • 举报
回复
俺来说说吧 如果想实现静态就要拆分页面严格区分永远静态还是暂时静态的东西

拿小说站举例
小说内容应该是永远静态的东西 导航部分是动态更新的
那这个页就分成2部分 你可以用框架把两个页合在一起也可以用PHP 合在一起
再来讨论动态的部分可以及时生成也可以定时生成
定时包括后台手动和自动生成 自动生成可以利用404这个特性
如果是自动生成的可以加个高宽都是0的框架 目的是提交这个页的死亡时间(PHP验证个时间的负载可以几乎不计) 如果死亡重新生成这个页 当然也可以在后台手工重新生成

这样做的效果就是极少访问数据库 如果访问量大的话可以达到一次生成使用几千次的效果 如果想追求实效性可以在提交更新的时候也重新生成

达到这些的前提是目录规划 做好详细的分类规划是必须的(IO在几百个文件中寻找目标也是没有效率的个人认为还不如数据库)

呵呵 为了完美当然会有控制某目录是否静态的地方 仔细做好规划这一切实现起来非常简单的

多线程这个问题要考虑清楚是针对多用户还是1个用户的 如果是针对1个用户的多线程无非就是多开窗口变成多个用户访问 JS 框架 AJAX随你咯

这些是静态的基本思路 当然如果以前的工作是在一个成熟的开发框架下进行的话 只要稍微修改下框架的视图部分就很轻松实现了(个人建议在使用类库的时候最好自己重新写个中间类 比如你用ADODB不爽了 重写下中间类就可以轻松换到其DB类库)
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
至于前台,用户怎么可能会提交的内容大到需要等待的程度??


其实提交一篇新文章同时要更新目录,可是这个目录有1500页。。。所以要等待咯,本身的文章的静态页面就不需要什么时间
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
楼上的大虾。。。我现在的问题就是不知道具体怎么实现那个后台线程,请教ing
php可以应用上WebServers??有点了解,也不怎么会。。
Dereky 2006-07-02
  • 打赏
  • 举报
回复
不能理解你说的应用呀?如果是后台,可能因为需要大量生成,那是需要等待时间的
至于前台,用户怎么可能会提交的内容大到需要等待的程度??

实现你说的效果好象不难吧,取得用户数据,交给一个后台线程处理(写库,生成静态),前台立即跳转到指定页面
用WebServers应该就可以:)
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
不会很难啊,其实说白了,需要解决的问题就像很多blog那样生成静态页面要等一段时间而已嘛,大概效果吧。。不知道具体怎样实现而已。。
longxin123 2006-07-02
  • 打赏
  • 举报
回复
这么有难度的问题,分太少了
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
我讲得结束的地方就是我已经知道的地方

。。。

你讲得结束的地方,不好意思,说错了
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
前面三次还好,根本没有人回帖
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
都说到这份上了 还要解释???

人不能太贪心

晕死,。。。我讲得结束的地方就是我已经知道的地方。。我本来就希望知道后面的实现方法。。。
。。。
平。。你来这里的阿。。。
我在csdn发过四次贴。没有一次有人帮到的。。
KevC 2006-07-02
  • 打赏
  • 举报
回复
小民,解决了没有?帮你顶一下
ten789 2006-07-02
  • 打赏
  • 举报
回复
都说到这份上了 还要解释???

人不能太贪心
jimmy0223 2006-07-02
  • 打赏
  • 举报
回复
定时包括后台手动和自动生成 自动生成可以利用404这个特性
如果是自动生成的可以加个高宽都是0的框架 目的是提交这个页的死亡时间(PHP验证个时间的负载可以几乎不计) 如果死亡重新生成这个页 当然也可以在后台手工重新生成

大概可以吧。具体是怎样做的。。有没有代码示例啊?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧