问题是这样的,在前台页面中,有一个栏目要显示5条信息,这五条信息是在从后台设定的50条信息中挑选出来的,50条信息按照某一标准进行排序,要求每隔一段时间后,把这5条信息进行轮换。保持内容的不重复。请问如何按照某一时间间隔自动实现这一事务逻辑,其目的是节省人工的操作。这个栏目,目前我使用inc文件来替换的,所以说,如果页面一次性生成后,是否还需要每次在更新的时候,还要用手工来生成页面,这不是我想要的效果,理想的方式就是一切都能自动实现。不知道是否有好的办法来解决这个问题,先谢谢了,

解决方案 »

  1.   

    ajax异步去后台选数据,成功后,在success函数中更细界面 内容,用来显示的地方可以用div,表格等,返回后用js根据div或表格id去更新内部html
      

  2.   

    setInterval+ajax异步处理,轮换的数据写入到缓存中,读取从缓存中取
      

  3.   


    谢谢,你的建议听起来不错,能不能再详细点,如果有个简单的例子就跟好了。由于我在该页面用的是inc文本文件的替换,不知道你提到的方式是否可行。
      

  4.   

    不用管你的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条数据