/**
* @author 全冠清
*/
(function($){
var methods = {
init: function(opts){
if(!$(window).data('register_messageline')){
$(window).data('register_messageline',true)
}else{
alert('error:只允许有一个请求总线')
return;
}
var defaults = {
actions:[],
timeout: 80000//默认ajax请求超时时间80秒
}
var setting = $.extend(true, defaults, opts)
if(!$(window).data('messageline')){
$(window).data('messageline',[])
}
$.each(setting.actions,function(i,item){
$(window).data('messageline').push(item)
})
function messageline(){
$.ajax({
type: "GET",
dataType: "json",
url: setting.url,
timeout: setting.timeout,
data:setting.data,
success: function(messages, textStatus){
//从服务器得到数据,显示数据并继续查询
$.each(messages,function(i,item){
$.each($(window).data('messageline'),function(j,active){
if(active.name===item.name){
active.action(item.data)
}
})
})
messageline()
},
//Ajax请求超时,继续查询
error: function(XMLHttpRequest, textStatus, errorThrown){
if (textStatus == "timeout") {
messageline()
}
}
});
}
messageline()
},
addlistener: function(active){
if(!$(window).data('messageline')){
$(window).data('messageline',[])
}
$(window).data('messageline').push(active)
}
};
$.comet = function(method){
// Method calling logic
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
}
else
if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
}
else {
$.error('Method ' + method + ' does not exist on jQuery.comet');
}
};
})(jQuery);
用法
//初始化(仅需要一次)
$.comet({
url:'url'
})
//使用(可任意多种消息类型)
$.comet('addlistener',{name:'newMessage(请求的名字)',action:function(data){
//$('.new_state').html('有'+data+'条新动态,赶快点击查看哦!').show()
}})
分享到:
相关推荐
、CSS和JavaScript知识的开发者,内容覆盖了jQuery知识体系的全部内容,包括jQuery Core、jQuery Plugin 、jQuery UI、jQuery Mobile以及大量第三方的插件库和2800多个应用jQuery技术的网页参考。
jquery 的经典 英文书 jQuery Plugin Development Beginner’s Guide.PDF
表格拖拽排序插件 Table Drag and Drop JQuery plugin v0.7 最新0.7版本
jQuery plugin for autocomplete - jQuery自动完成插件
jQuery Media Plugin是一款专门为jQuery设计的多媒体插件,用于在网页中轻松集成音频、视频和图像等多媒体元素。这款插件的出现,极大地简化了开发者在HTML5时代处理多媒体内容的复杂性,使得开发者无需深入了解...
struts2-jquery-plugin-3.1.0.jar
aptana jquery plugin js javascript
* usage as: * var slider = $.fn.jSlider({...}); * slider.setSliderValue(value,callback);
jQuery Plugin Prin YourPage是一个基于JavaScript库jQuery的插件,专为网页打印设计。这个插件使得用户可以方便地选择并打印网页中的任何部分,而不是强制打印整个页面。在网页设计和开发中,有时我们需要提供一种...
Auto-Save your content when editing in HTML input and textarea DOM element. http://geniuscarrier.com/autosave-a-jquery-plugin/
**jQuery Validation Plugin 知识详解** jQuery Validation Plugin 是一个用于前端表单验证的强大工具,它为jQuery用户提供了方便快捷的方法来验证用户输入的数据,确保数据的准确性和完整性。这个插件能够帮助...
"promptuMenu - jQuery Plugin" 是一个基于jQuery的插件,专为网页菜单设计和交互增强而开发。这个插件的目的是提供一种简单且高效的方式来创建动态、响应式的下拉菜单,以提升用户体验并增强网站的导航功能。下面将...
struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0 struts2-jquery-plugin-2.0.0
总的来说,"tableExport.jquery.plugin-1.10.22.zip"是前端开发中一个便捷的工具,它通过jQuery实现了表格数据的快速导出,提升了用户体验,简化了开发者的工作。无论是在企业级应用还是个人项目中,都能看到其广泛...
jQuery Orbit Plugin 1.2.3 是一个专为网页设计者和开发者打造的高效、灵活的轮播插件。这个版本的Orbit Plugin是jQuery库的一个扩展,它提供了丰富的功能和自定义选项,使得创建吸引人的图片轮播、内容滑动效果变得...
**jQuery摄像头插件jquery-webcam-plugin** 在网页开发中,集成摄像头功能可以帮助用户实时捕捉图像,广泛应用于在线证件照上传、视频聊天、虚拟试衣间等场景。`jQuery webcam plugin`是一个优秀的JavaScript库,它...
jQuery Mask Plugin是一款强大的JavaScript库,专门用于输入框内容格式化。这个插件使得开发者能够轻松地为HTML表单中的输入字段添加格式约束,比如电话号码、日期、货币等,从而提高用户界面的交互性和用户体验。它...
struts2 jquery plugin ,学习struts2 ,又希望在其中使用Jquery的朋友,不妨看看
Auto-Save your content when editing in HTML input and textarea DOM element. http://geniuscarrier.com/autosave-a-jquery-plugin/
Struts2-jQuery-Plugin是基于Struts2框架的一个扩展插件,它为开发者提供了丰富的jQuery UI组件,使得在Struts2应用中实现交互式的用户界面变得更加便捷。这个使用手册将详细阐述如何集成并利用该插件提升Web应用的...