/**
* @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).
分享到:
- 2006-11-03 21:02
- 浏览 3772
- 评论(0)
- 论坛回复 / 浏览 (0 / 2709)
- 查看更多
相关推荐
Ajax-youtube-music-engine.zip,youtube音乐引擎脚本php,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的...
Ajax-searchEngine.zip,一个简单的搜索引擎来搜索已经上传到数据库中的文件,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在...
2. **包含资源**:将下载的压缩包解压后,将`css`目录下的样式文件(如`validationEngine.jquery.css`)和`js`目录下的JavaScript文件(如`jquery.validationEngine-en.js`和`jquery.validationEngine.js`)引入到你...
### DWR在AJAX中的应用及注意事项 #### 一、DWR简介与配置 DWR(Direct Web Remoting)是一种简化Ajax开发的技术框架,它可以让JavaScript像调用本地方法一样直接调用服务器端的方法,从而简化了前端和后端之间的...
jQuery.validationEngine v3.1.0 寻找官方贡献者 这个项目已经进行了7年多了,现在我仅通过请求请求的贡献来维护该项目。 但是,我很乐意帮助提高代码质量并保持可接受的未解决问题。 概括 jQuery验证引擎是一个...
"qalingo-engine-master"的命名方式暗示了项目可能使用了Git进行版本控制,"master"分支通常是主分支,代表了项目的最新稳定状态。项目结构可能包括源码、配置文件、资源文件等多个子目录,遵循Maven或Gradle的约定...
1. **DWR Engine**:DWR的核心引擎,负责处理AJAX请求,将客户端的JavaScript调用转化为服务器端的Java方法调用,并将结果返回给客户端。 2. **Servlet**:DWR使用一个Servlet(通常叫DWRServlet)来接收和处理HTTP...
在压缩包`jQuery-Validation-Engine-master`中,你将找到以下内容: - `css` 文件夹:包含验证引擎的默认样式文件,你可以根据需要进行调整。 - `lang` 文件夹:包含不同语言的本地化文件,可以更改成所需的语言。 ...
8. **AJAX验证**:支持异步验证,可以与服务器端接口配合,验证更复杂的数据条件。 9. **自定义验证方法**:如果内置的验证规则不能满足需求,开发者可以创建自己的验证函数,增强验证功能。 为了使用jQuery ...
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. ...
在"anime-search-engine"中,JavaScript主要用于构建前端交互逻辑和处理用户输入,通过AJAX实现异步数据交换,提高用户体验。同时,JavaScript也可以配合Node.js在服务器端运行,实现前后端一体化开发。 二、项目...
在【压缩包子文件的文件名称列表】中,“gif-search-engine-master”可能包含项目源代码、样式表、配置文件以及可能的测试文件等。深入研究这些文件,我们可以了解具体的代码实现、项目结构以及如何部署和运行这个...
这有助于自定义用户交互,比如通过AJAX提交数据。 7. **`DWRUtil.addOptions()`**:这是一个非常有用的方法,用于向`<select>`元素动态添加选项。这对于创建可更新的下拉列表非常有用,可以在不刷新整个页面的情况...
是一个索引引擎,它使用广度优先搜索索引给定的网页。 由于我缺乏让索引器 24/7 全天候运行的资金,因此我选择了一个解决方案,用户可以输入他们想要索引的链接并选择搜索的深度(最高级别为 3)。...
**APE(Ajax Push Engine)详解** Ajax Push Engine(简称APE)是一种实时Web通信技术,它允许服务器主动向客户端推送数据,而无需客户端不断发起请求。这与传统的HTTP长轮询或者短轮询不同,它利用了WebSocket协议,...
AJAX引擎是可移植的Ajax框架,它通过为JavaScript提供代理来在数据传输层上基于Web服务标准(SOAP,WSDL)构建。 支持:AJAX操作,排队,调度,启用AJAX的控件。 服务器端适配器可用
jQuery插件form-validation-engine是一个强大的表单验证工具,它允许开发者使用正则表达式来定义各种验证规则,确保用户输入的数据符合预设的格式。在本文中,我们将深入探讨如何利用该插件进行正则表达式操作,以及...
项目文件名称"handlebars-search-engine-master"暗示了这是一个开源项目,其中包含了主分支的代码。通常,这样的文件夹可能包含以下部分: 1. `app.js`或`index.js`:这是Express应用的主要入口文件,配置了服务器和...