`
joshokn
  • 浏览: 102147 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ajax-Engine

    博客分类:
  • Ajax
阅读更多
/**
 * @author joshokn
 */
function Engine(){
	//存放事件的列表
	this.eventList=new Array();
	
	//store Engine中的widget列表
	this.widget_L=new Array();
	
}
	
//load widget list
Engine.prototype.load=function(widget_list){
	widget_L = widget_list;
}


/**
 * 回调,处理事件列表
 * @param {Object} eventList
 * @param {Object} widget_L
 */
Engine.prototype.process = function(){
	for(var i = 0 ; i < widget_L.size; i++){
		//widget 's method!
		widget_L[i].processMess(eventList);
	}
}

/**
 * 这里就是向后台定时轮询取事件
 * @param {Object} widget_L
 */
Engine.prototype.GetEventsInfo = function(){					
	var xmlHttp;
	try {
		xmlHttp = new XMLHttpRequest();
   	} catch(e) {
   		try {
   			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
  		 	try {
  				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  			} 
  			catch(e) {
				xmlHttp = false;
   			}
		}		
  	}
	
	if(xmlHttp){		
		xmlHttp.open("POST" , "tree?name=engine, false);
		
		xmlHttp.send(null);
		if(xmlHttp.readyState == 4){	
			var response = xmlHttp.responseText;
                  //数据结构根据具体的业务来定
			var text = response.split("&");
			var name = text[0];
			var widget_name = text[1];
			var widget_id = text[2];
			var widget_type = text[3];
			var tempArray = new Array(widget_name,widget_id, widget_type);
			Engine.eventList[count++] = tempArray;
			
                  //取到的消息交给process处理
			process();
		}	
	}	
}




/**
 * 启动引擎,定时轮询
 */
Engine.prototype.start = function(){
	 window.setInterval("GetEventsInfo()",5000);		
};
	

这个Engine的位置是放在前台的,它的作用,就是负责收集消息,分发消息.
代码仍有不少累赘,比如eventlist没有必要作为一个属性,它的完全可以是一个临时变量,待改进。
我想说的是有了这个引擎,b/s中的MVC结构就更加清晰了。
前台的widget只需要将自己的改变通知后台(相当于VIEW通知MODEL),其它的事情就不需多问了;Engine也只需要做收发的工作(controler负责接受模型的改变,去通知view).
分享到:
评论

相关推荐

    Ajax-youtube-music-engine.zip

    Ajax-youtube-music-engine.zip,youtube音乐引擎脚本php,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...

    Ajax-searchEngine.zip

    Ajax-searchEngine.zip,一个简单的搜索引擎来搜索已经上传到数据库中的文件,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在...

    dotk-engine-v0.5

    Web-Based Role Playing Engine (for Web Game RPG). Uses Javascript (DOM encapsuled) with HTML to provide motion. Uses PHP and FireBird invoked by Ajax to control the other players in your screen. ...

    jQuery-Validation-Engine:jQuery表单验证插件

    jQuery.validationEngine v3.1.0 寻找官方贡献者 这个项目已经进行了7年多了,现在我仅通过请求请求的贡献来维护该项目。 但是,我很乐意帮助提高代码质量并保持可接受的未解决问题。 概括 jQuery验证引擎是一个...

    Simple-Search-Engine:用于网页的 node.js 索引引擎

    是一个索引引擎,它使用广度优先搜索索引给定的网页。 由于我缺乏让索引器 24/7 全天候运行的资金,因此我选择了一个解决方案,用户可以输入他们想要索引的链接并选择搜索的深度(最高级别为 3)。...

    Ajax Engine - Aspects of Ajax-开源

    AJAX引擎是可移植的Ajax框架,它通过为JavaScript提供代理来在数据传输层上基于Web服务标准(SOAP,WSDL)构建。 支持:AJAX操作,排队,调度,启用AJAX的控件。 服务器端适配器可用

    jQuery Validation Engine ( jQuery 表单验证插件)

    Validation Engine是一款基于Jquery的js表单验证插件。相对于之前的传统表单验证工具,其优点是自定义验证内容更广泛以及与AJAX的方便整合。

    ASP.NET中实现jQuery Validation-Engine的Ajax验证

    在jQuery的表变验证插件中Validation-Engine是一款高质量的产品,提示效果非常精美,而且里面包含了AJAX验证功能

    百歌搜索引擎tomcat嵌入版(Baioogle-SearchEngine Embed in Tomcat)

    2008年5月份,因学习《信息检索》课程,本人利用java的开源搜索引擎库lucene,以及结合ajax技术google-suggest功能,模仿baidu、google的基本风格做了个“Baioogle-SearchEngine(百歌搜索引擎)”程序。 (源代码见...

    ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码

    在jQuery的表变验证插件中Validation-Engine是一款高质量的产品,提示效果非常精美,而且里面包含了AJAX验证功能

    APE(Ajax Push Engine)示例

    NULL 博文链接:https://gavin.iteye.com/blog/558427

    基于Ajax和ArcEngine的WebGIS系统的设计和实现

    基于Ajax和ArcEngine的WebGIS系统的设计和实现

    gif-search-engine:基于AJAX的GIF搜索引擎网站

    GIPHY搜索引擎这是一个基于GIPHY API的GIF搜索引擎,使用AJAX在页面上对其进行了调用。

    Baioogle-SearchEngine(百歌搜索引擎)

    1.本系统为B/S结构的web应用系统,是基于Apache lucene(全文检索功能)以及ajax(GoogleSuggest功能)等技术开发的全文信息检索系统,目前仅支持对纯文本文件的检索 2.系统名称:Baioogle-SearchEngine,即“百(度...

    google-app-engine-jappstart:Google App Engine的Java框架

    入门指南jappstart是一个基于Spring,Spring Security和Sitemesh的Google App Engine Java框架。 该项目旨在成为Google App Engine Java应用程序的起点。 它不是传统意义上的框架,而是旨在为开发人员可以轻松扩展的...

    ajax_Engine:Ajaxi 引擎 2012 版-开源

    Ajax Engine 2012 版本 该引擎使您可以轻松使用 AJAX 的所有功能,您可以通过控制 post & GET 协议来控制任务的发送。您还可以指定发送请求的方法(同步 - 或异步)以及控制以 TXT 文本或文档形式接收结果的方式 XML...

    handlebars-search-engine:ExpressJade、把手、AJAX、jQuery

    车把搜索引擎Express/Jade、把手、AJAX、jQuery 把手:搜索引擎

Global site tag (gtag.js) - Google Analytics