我有一些非常大的数据表,我试图用jQuery做一个自动更新,但它似乎做了很多不必要的数据库调用之前更新。我想要的是检查一个变量"lastModified",并将其与数据库中当表更改时将更改的列进行比较。
我的工作,但我想减少交通流量。什么好主意吗?
function update(){
var turl = "tracking?objId=";
$.ajax({
type: "GET",
url: turl + source,
success: function(data){
$("#summary").html(data)
}
});
} var holdTheInterval = setInterval(update, 60000);
(这是完成更新工作的基本代码)
编辑 我已经解决了这个问题,方法是使用一个单独的jsp页面,其中只有一个包含lastModified日期的输入,在包含数据表的页面上,我放置了另一个lastModified输入。我在新的jsp页面上运行update(),然后比较输入。如果它们不一样,我就运行完整的更新。这个过程效果更好
目前你每10小时才轮询一次,所以我怀疑有人会注意到这一点。我认为您可以删除这个ajax轮询,以减少获得更多流量的机会,以防客户保持浏览器打开
如何编写一个专用的服务器端脚本,将只返回数据库中的最后一个Rev. No ?
然后可以
- 每隔一段时间通过AJAX轮询脚本,而不会造成疯狂的流量。
- do if (local_rev !== remote_rev) {update();}