Coldfusion-数据库记录更新时刷新页面

时间:2019-01-23 09:48:36

标签: loops asynchronous coldfusion refresh cfquery

美好的一天,

让我描述一下我的问题:

场景:

  • 用户1具有Coldfusion网页,其中包含6个作为使用数据库填充的html元素的警报。用户1不断监视此页面的更改。
  • 另一台计算机(不同会话)上的用户登录到管理控制台,并添加第7个元素并将其插入数据库。
  • 添加警报并将其插入数据库后,数据库包含一个从0更改为1的字段。
  • 用户1的网页不必动态刷新或更新第8条警报。

问题:

  • 我正在努力运行一个异步循环,该循环将永久性地查询数据库以获取表明有更改的记录,而不会冻结页面的其余部分。

解决方案:

  • 我需要运行cfquery来检查数据库中的isUpdated字段。
  • 该cfquery需要每分钟运行一次。
  • cfquery返回1时,页面应刷新,这也将填充新警报。

1 个答案:

答案 0 :(得分:5)

可以通过sockets完成,您不必每分钟检查一次新记录的可用性。

您也可以使用javascript/jquery来做到这一点:

<script>
var lastAlert = '#lastAlert#'; //last at the time of loading the page

setInterval(function() {
    lastAlert = isUpdated(lastAlert);
}, 60000);

function isUpdated(lastAlert){
res = lastAlert;
$.ajax({                            
    url: 'checkAlerts.cfm', //in this file do check for changes in the database. should return the number of the last alert
    type: 'POST',
    data: {lastAlert:lastAlert},
    cache: false,
    success:function(res){  
        if(res > lastAlert){
            //your code if there is a new entry 
            alert('a new entry has been added');
        }
    }
});
return res;
}   
</script>

我没有检查代码!但我希望您了解如何继续。