oschina首页

宋浩 发布于 2010/03/31 10:36
阅读 2K+
收藏 5

红薯哥:能说说OSCHINA首页吗? 是模版生成还是怎样的?

访问挺快,信息又能及时更新。  就是自己不会弄。

 

加载中
1
宋浩
宋浩

引用来自“红薯”的帖子

引用来自“Shny”的帖子

引用来自“红薯”的帖子

应该用 Servlet 来处理 *.ftl ,而不是 filter ,filter 是不行

嗯。 也行。 

我是用的apache server 和tomcat集成。 为什么访问http://localhost/就不行而加上了8080端口就可以哦。

apache的配置所有请求都是给tomcat处理的。

JK配置的一段:JkMount   /*.*  ajp13

JkMount   /*  ajp13

晕了。 就这样改下就行了。唉, 自己也太不会思考了。看来还得努力学习。

特别力谢红薯大哥不辞辛劳的解答。 崇拜!OSCHINA以后就是俺的精神支柱。

0
Sephiroth
Sephiroth

自己实现控制器

动态数据定时同步并静态化

数据库DButils

以上是我个人YY的

0
红薯
红薯

没有实现静态化哦,主要是缓存而已。因为首页的数据对更新要求不那么及时,因此速度还是挺快的。

0
宋浩
宋浩

整个首页全缓存在内存中?

那数据更新是如何实现的呢?

比如我刚发表一个话题 , 接着刷新页面就可以看到

0
红薯
红薯

不是缓存页面,是缓存数据,例如最新的新闻、帖子,都是保存在缓存里的一个个 List 对象

生成页面的时候,直接拿出这些 List 来填充页面。

而你说的,刚发表的一个话题,接着刷新页面就可以看到,这个是你运气好,刚好赶上了缓存失效的时间。

当缓存失效的时候,等于是从缓存里拿不到 List 数据,这时候就重新去数据库里查询一下,然后再放到缓存里就行了。

0
宋浩
宋浩

首页所有信息的缓存时间都一致吗?还是分开的?

 还想问下页面是什么做的? 直接从缓存中拿取数据?

0
红薯
红薯

不一致哦。页面是用 Velocity 做的,给你看一下首页的一段代码(列出最新更新的15条帖子)

<table width='100%' cellspacing='0' cellpadding='0'>
    #foreach($thread in $Thread.LoadList($Thread.ListLastUpdated(0,1,15,false)))
    #if($thread)
    <tr>
    <td class='thread'>
        <a href="$link.root("bbs/thread/${thread.id}")" target="_blank" title="$format.html($thread.title)">
        #if(${thread.as_top}==1)[顶]#end$format.text($format.abbreviate(${thread.title},30))
        </a>
        <span class='stat'>(${thread.post_count}回/${thread.view_count}阅)</span>
    </td>
    <td class='last_post'>
        #if(${thread.last_post_user} > 0)
            $date.friendly_time($request,${thread.last_post_time}) By $format.text($format.abbr($User.Get(${thread.last_post_user}).name,12))
        #else
            $date.friendly_time($request,${thread.create_time}) By $format.text($format.abbr(${thread.GetUser().name},12))
        #end
    </td>
    </tr>
    #end
    #end
</table>

0
Sephiroth
Sephiroth

引用来自“红薯”的帖子

没有实现静态化哦,主要是缓存而已。因为首页的数据对更新要求不那么及时,因此速度还是挺快的。

 竟然使用是缓存.....

话说VM效率还是不错的

我比较喜欢django的模板和freemarker

0
宋浩
宋浩

感谢红薯哥, 明白一些了。

 页面的生成是请求时候生成还是定时生成?

0
红薯
红薯

引用来自“Shny”的帖子

感谢红薯哥, 明白一些了。

 页面的生成是请求时候生成还是定时生成?

请求的时候生成的。

返回顶部
顶部