`
全冠清
  • 浏览: 52670 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[jquery plugin]http轮询

 
阅读更多
/**
 * @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()
	}})
分享到:
评论

相关推荐

    jQuery全能权威指南:jQuery Core+jQuery Plugin+jQuery UI+jQuery Mobile 源码

    、CSS和JavaScript知识的开发者,内容覆盖了jQuery知识体系的全部内容,包括jQuery Core、jQuery Plugin 、jQuery UI、jQuery Mobile以及大量第三方的插件库和2800多个应用jQuery技术的网页参考。

    jquery 英文教程 jQuery Plugin Development Beginner’s Guide PDF

    jquery 的经典 英文书 jQuery Plugin Development Beginner’s Guide.PDF

    表格拖拽排序插件 Table Drag and Drop JQuery plugin v0.7

    表格拖拽排序插件 Table Drag and Drop JQuery plugin v0.7 最新0.7版本

    jQuery plugin for autocomplete - jQuery自动完成插件

    jQuery plugin for autocomplete - jQuery自动完成插件

    jQuery Media Plugin Demo

    jQuery Media Plugin是一款专门为jQuery设计的多媒体插件,用于在网页中轻松集成音频、视频和图像等多媒体元素。这款插件的出现,极大地简化了开发者在HTML5时代处理多媒体内容的复杂性,使得开发者无需深入了解...

    struts2-jquery-plugin-3.1.0.jar

    struts2-jquery-plugin-3.1.0.jar

    aptana 2.0 jquery plugin

    aptana jquery plugin js javascript

    [jQuery plugin]slider demo

    * usage as: * var slider = $.fn.jSlider({...}); * slider.setSliderValue(value,callback);

    jQuery Plugin Prin YourPage

    jQuery Plugin Prin YourPage是一个基于JavaScript库jQuery的插件,专为网页打印设计。这个插件使得用户可以方便地选择并打印网页中的任何部分,而不是强制打印整个页面。在网页设计和开发中,有时我们需要提供一种...

    autoSave - jQuery Plugin

    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 Validation Plugin 是一个用于前端表单验证的强大工具,它为jQuery用户提供了方便快捷的方法来验证用户输入的数据,确保数据的准确性和完整性。这个插件能够帮助...

    promptuMenu - jQuery Plugin

    "promptuMenu - jQuery Plugin" 是一个基于jQuery的插件,专为网页菜单设计和交互增强而开发。这个插件的目的是提供一种简单且高效的方式来创建动态、响应式的下拉菜单,以提升用户体验并增强网站的导航功能。下面将...

    struts2-jquery-plugin-2.0.0

    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

    总的来说,"tableExport.jquery.plugin-1.10.22.zip"是前端开发中一个便捷的工具,它通过jQuery实现了表格数据的快速导出,提升了用户体验,简化了开发者的工作。无论是在企业级应用还是个人项目中,都能看到其广泛...

    jQuery Orbit Plugin 1.2.3

    jQuery Orbit Plugin 1.2.3 是一个专为网页设计者和开发者打造的高效、灵活的轮播插件。这个版本的Orbit Plugin是jQuery库的一个扩展,它提供了丰富的功能和自定义选项,使得创建吸引人的图片轮播、内容滑动效果变得...

    jQuery摄像头插件jquery-webcam-plugin

    **jQuery摄像头插件jquery-webcam-plugin** 在网页开发中,集成摄像头功能可以帮助用户实时捕捉图像,广泛应用于在线证件照上传、视频聊天、虚拟试衣间等场景。`jQuery webcam plugin`是一个优秀的JavaScript库,它...

    jQuery Mask Plugin输入框内容格式化插件.zip

    jQuery Mask Plugin是一款强大的JavaScript库,专门用于输入框内容格式化。这个插件使得开发者能够轻松地为HTML表单中的输入字段添加格式约束,比如电话号码、日期、货币等,从而提高用户界面的交互性和用户体验。它...

    struts2-jquery-plugin

    struts2 jquery plugin ,学习struts2 ,又希望在其中使用Jquery的朋友,不妨看看

    autoSave - a jQuery plugin

    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-Plugin是基于Struts2框架的一个扩展插件,它为开发者提供了丰富的jQuery UI组件,使得在Struts2应用中实现交互式的用户界面变得更加便捷。这个使用手册将详细阐述如何集成并利用该插件提升Web应用的...

Global site tag (gtag.js) - Google Analytics