作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以现在,我每秒都会执行一次 GET 请求,以检查数据库中是否有新信息。
这使用了用户方面的大量资源。我有一个显示当前数据的文本框。如果数据库中有新数据,则会被新数据替换。目前,我每秒执行一次 GET 请求来实现此目的。
有更好的方法吗?
例如:我查看检查窗口并看到堆栈溢出。它没有执行任何 GET 请求。但一旦有新评论,它就会更新为新评论。我想要类似的东西。
我研究过 Stackoverflow,但没有找到对我正在制作的应用程序有帮助的。
我当前的代码:
function timers() {
tmrAjax = setInterval(function () {
$.get('<?php echo base_url('home/get') ?>', function (html) {
$("[name=text]").attr('id', 'text');
$("#text").val(html);
// $("#text").removeAttr("disabled");
});
}, 1000); //a call every second is ridiculous!
}
timers();
$(window).blur(function () {
clearInterval(tmrAjax);
$("#text").removeAttr("id");
// $("#text").attr("disabled", "disabled");
}).focus(timers);
最佳答案
StackOverflow 网站和 AngularJS 中出现的概念称为 WebSocket。传统的 HTTP AJAX 长轮询可以与 WebSocket 进行比较:
(来源:jensimmons.com)
WebSockets 与服务器有持久连接。这意味着,服务器总是知道数据何时发生变化,并将数据推送到客户端,而不是传统的客户端从服务器拉取(请求)数据的方式。
如您所见,WebSocket 是相同的,但是逐帧进行。他们拿大块的。仅将数据 block 发送到客户端,从而节省大量时间和带宽:
(来源:rabbitmq.com)
关于jquery - AJAX - 仅当有新数据时才获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33967455/
我是一名优秀的程序员,十分优秀!