如何用jQuery实现通知系统?
How can I implement notification system with jQuery?
我有一个通知区,我想更新时,有人发送的消息,例如使用jQuery或Ajax(我的数据库是在一个soap服务器),我想做soap调用每秒钟左右,我怎么能做到这一点?
您可以使用一个简单的setInterval
结构以预定义的间隔执行AJAX调用。像这样:
setInterval(function(){
$.get('ajax_responder.php',dataObj,function(){
// ajax callback
// here is where you would update the user with any new notifications.
});
},5000);
前面的代码将每5000毫秒(每5秒)执行一个AJAX请求。
引用:
-
$.get()
-
setInterval()
我强烈建议使用setTimeout()
,而不是setInterval()
。
MDN解释:
如果您的逻辑可能需要更长的时间来执行比间隔时间,建议递归调用使用
window.setTimeout
命名函数。例如,如果使用setInterval每5秒轮询一个远程服务器,网络延迟,无响应的服务器和许多其他问题可能会阻止要求在规定时间内完成。因此,你可能会发现让您自己处理排队的XHR请求,这些请求不一定会返回秩序。对于这种情况,首选递归
setTimeout
模式:在上面的代码片段中,声明了一个命名函数循环并立即执行。递归地调用(function loop(){ setTimeout(function(){ // logic here // recurse loop(); }, 1000); })();
loop
在setTimeout
内部执行逻辑完成后。虽然这模式不能保证在固定的时间间隔内执行,但它可以保证在递归之前完成前一个间隔。
实时web的最佳方式是node.js。
Node.js是一个基于Chrome的JavaScript运行时构建的平台,用于轻松构建快速,可扩展的网络应用程序。Node.js使用事件驱动的非阻塞I/O模型,使其轻量级和高效,非常适合跨分布式设备运行的数据密集型实时应用程序。
但是你可以通过setInterval或setTimeout来实现,在你的interval中加入一个Ajax调用。
var intval = setInterval( function()
{
$.get('url.php', {data1: "value1", data2: "value2"},
function(response)
{
// response
});
}, 1000);
相关文章:
- Firebase2(Firebase.google.com)推送通知-从外部管理
- 数据绑定:'系统Char'不包含名为'xxxxx'
- Laravel 5.0:通知系统的实现(Facebook,Twitter和stackoverflow)
- Cordova:如何显示系统通知
- 通知系统,每次重新加载时都会在回调时触发 Firebase
- 设置通知系统的最佳方式
- 用于系统级通知的 Apigee BaaS
- 带有php和socket.io的通知系统
- 如何实现即时用户消息和通知系统
- 通知系统就像脸书上的宝石
- 如果我有一个rails后端和运行在Angular.js上的客户端,如何创建一个实时通知系统
- 如何用jQuery实现通知系统?
- 为一个HTML5 Django web应用实现一个实时通知系统
- HTML Web应用程序通知系统
- 清除系统通知
- 实现Phonegap系统通知插件
- 是否有可能用jquery/ajax构建推送通知系统?
- 如何在游戏中设置通知系统
- 通知系统的工作原理
- 执行推送通知系统的最佳方式