【发布时间】:2012-01-23 17:49:30
【问题描述】:
我创建了一个网站,它使用timeOut 每 15 秒自动刷新一次DIV。
这非常有效,但实际上更新 DIV 可能需要 5 分钟,这意味着脚本将在更改发生之前执行 20 次 调用。很好地浪费了昂贵的带宽和服务器性能:)
我已经阅读了很多关于做 Long Polling 的文章,并且一直在尝试。
我的 AJAX 调用是:
intval = window.setTimeout(function() {
$.ajax({
type: 'GET',
cache: false,
url: 'url',
beforeSend: function() { $('#timerimg').attr('src', 'img/icons/loading.gif'); },
success: function(data) { $('#ajaxcontent').html(data); },
complete: function() { $('#timerimg').attr('src', 'img/icons/stop.gif'); }
});
}, 15000);
这个函数被放置在一直刷新的页面中,使得timeout-function不断重复。
现在我已经尝试关注http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery 来创建一个简单的长轮询函数
(function poll() {
$.ajax({
type: 'GET',
cache: false,
url: 'url',
success: function(data) { $('#ajaxcontent').html(data); },
complete: poll,
timeout: 30000
});
})();
如果我将 url 设置为 hi.txt 并使其写入 Hello World! 那么它会不断完成并进行新的投票。这显然意味着大量同时进行的民意调查。
我该如何纠正这个问题?
与:
自动刷新DIV 是一个大图表,其中包含来自巨大SQL-Server 查询的计算。所以也许它应该只检查 SQL 查询后.getRows()(与原始相比)是否有最轻微的变化?
我在 jQuery 和 ASP-Classic 中做所有事情。
【问题讨论】:
标签: sql-server-2008 jquery asp-classic long-polling