日期:2014-05-17  浏览次数:20501 次

如何让首页面中的信息按照某一时间段自动轮换
问题是这样的,

在前台页面中,有一个栏目要显示5条信息,这五条信息是在从后台设定的50条信息中挑选出来的,50条信息按照某一标准进行排序,要求每隔一段时间后,把这5条信息进行轮换。保持内容的不重复

请问如何按照某一时间间隔自动实现这一事务逻辑,其目的是节省人工的操作。

这个栏目,目前我使用inc文件来替换的,所以说,如果页面一次性生成后,是否还需要每次在更新的时候,还要用手工来生成页面,这不是我想要的效果,理想的方式就是一切都能自动实现。

不知道是否有好的办法来解决这个问题,先谢谢了,

------解决方案--------------------
ajax异步去后台选数据,成功后,在success函数中更细界面 内容,用来显示的地方可以用div,表格等,返回后用js根据div或表格id去更新内部html
------解决方案--------------------
setInterval+ajax异步处理,轮换的数据写入到缓存中,读取从缓存中取
------解决方案--------------------
引用:
引用:setInterval+ajax异步处理,轮换的数据写入到缓存中,读取从缓存中取

谢谢,你的建议听起来不错,能不能再详细点,如果有个简单的例子就跟好了。

由于我在该页面用的是inc文本文件的替换,不知道你提到的方式是否可行。

不用管你的inc引入文件的,因为用jq只针对html来操作,你可以把js那段写到</body>标签前面即可:
<script type="text/javascript">
    var stateFlag = 0;
    $(function () {       
        getDataList();
        setInterval("getDataList()", 60000);//隔一分钟执行一次
    });

    function getDataList() { 
        $.ajax({
            ...
            ...
    }
</script>
</body>
</html>

ajax的请求处理数据的页面一定能通过某个方式获取一个标记参数。我的建议是用cookies来标记,然后cache来存取在你设定时间段内的数据。比如你页面一开始加载时你的栏目要显示5条数据,OK那就把一开始的5条绑定上去(其实总共的50条又不多可以全部写到缓存里面,你筛选一下去偷5条咯,这个你自己需要设计下结构,或者ds.table[n].select(...)什么的。我比较喜欢的做法是,在某个时间点[我写了个server,当然你用timer也是可以的]一次性把更新的50条数据写入到js文件里面,配合jq.cookies.js使用,读取就OK了),然后把一个标记,比如是1写入到cookies里面,一定时间后(你自己设定的)娶到这个标记然后+1再写入到cookie里面,再取另外的5条数据