不错的ajax组件

function Xajax()
{
if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:n " + text) };

this.workId = ''xajaxWork''+ new Date().getTime();
this.depth = 0;

//Get the XMLHttpRequest Object
this.getRequestObject = function()
{
if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
var req;
try
{
req=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
req=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2)
{
req=null;
}
}
if(!req && typeof XMLHttpRequest != "undefined")
req = new XMLHttpRequest();

if (xajaxDebug) {
if (!req) this.DebugMessage("Request Object Instantiation failed.");
}

return req;
}

// xajax.$() is shorthand for document.getElementById()
this.$ = function(sId)//$是什么?
{
return document.getElementById(sId);
}

// xajax.include(sFileName) dynamically includes an external javascript file
this.include = function(sFileName)
{
var objHead = document.getElementsByTagName(''head'');
var objScript = document.createElement(''script'');
objScript.type = ''text/javascript'';
objScript.src = sFileName;
objHead[0].appendChild(objScript);
}

// xajax.addHandler adds an event handler to an element
this.addHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
//eval的含义?
eval("this.$(''"+sElementId+"'').addEventListener(''"+sEvent+"'',"+sFunctionName+",false);");
}
else
{
eval("this.$(''"+sElementId+"'').attachEvent(''on"+sEvent+"'',"+sFunctionName+",fal**);");
}
}

// *ajax.removeHandler removes an event handler from an element
this.removeHandler = function(sElementId, sEvent, sFunctionName)
{
if (window.addEventListener)
{
eval("this.$(''"+sElementId+"'').removeEventListener(''"+sEvent+"'',"+sFunctionName+",false);");
}

时间: 2024-10-01 06:31:47

不错的ajax组件的相关文章

编写轻量ajax组件01-与webform平台上的各种实现方式比较_AJAX相关

前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏蔽http,为此提供了大量的服务器控件和ViewState机制,让开发人员可以像开发Windows Form应用程序一样,基于事件模型去编程.两者各有优缺点和适用情景,但MVC现在是许多Asp.net开发者的首选. WebForm是建立在Asp.net的基础上的,Asp.net提供了足够的扩展性,我

编写轻量ajax组件02--浅析AjaxPro_AJAX相关

前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇的介绍,我们知道要调用页面对象的方法,就是靠反射来实现的,关键是整个处理过程,包括反射调用方法.参数映射等.ajaxpro不仅在后台帮我们实现了这个过程,在前台也封装了请求调用的方法,例如ajax的相关方法,用ajaxpro的方法就可以发送异步请求了,不需要自己封装js或者使用js库.接下来就对这个

编写轻量ajax组件第三篇实现_AJAX相关

通过之前的介绍,我们知道要执行页面对象的方法,核心就是反射,是从请求获取参数并执行指定方法的过程.实际上这和asp.net mvc框架的核心思想很类似,它会解析url,从中获取controller和action名称,然后激活controller对象,从请求获取action参数并执action.在web form平台上,我们把方法写在.aspx.cs中,要实现的就是在页面对象还未生成的情况下,执行指定的方法,然后返回结果. 我们先看实现后几个调用例子,这些功能也可以组合使用:       [Aja

编写轻量ajax组件01-与webform平台上的各种实现方式比较

前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏蔽http,为此提供了大量的服务器控件和ViewState机制,让开发人员可以像开发Windows Form应用程序一样,基于事件模型去编程.两者各有优缺点和适用情景,但MVC现在是许多Asp.net开发者的首选. WebForm是建立在Asp.net的基础上的,Asp.net提供了足够的扩展性,我

编写轻量ajax组件02--浅析AjaxPro

前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇的介绍,我们知道要调用页面对象的方法,就是靠反射来实现的,关键是整个处理过程,包括反射调用方法.参数映射等.ajaxpro不仅在后台帮我们实现了这个过程,在前台也封装了请求调用的方法,例如ajax的相关方法,用ajaxpro的方法就可以发送异步请求了,不需要自己封装js或者使用js库.接下来就对这个

ajax 组件自动放弃和延时控制下载

<script> /* 版权:伟大的SB作者是群27521907的SB群猪 以上!删除者是猪! 大概功能,执行某个组试下载, 如果多个同组执行下载,会最后执行最后一个请求. 并且对不同时间的请求进行放弃和延时控制下载. */ window.XmlHttp = {} //创建XML对象 window.XmlHttp.XMLObject = function(){  var HaObject = null  if ( HaObject == null ) try { var HaObject =

AJAX+JSF组件 实现高性能的文件上传

一. 引言 基于浏览器的文件上传,特别是对于通过<input type="file">标签包含到Web页面来实现上传的情况,还存在较严重的性能问题.我们知道,超过10MB的上传文件经常导致一种非常痛苦的用户体验.一旦用户提交了文件,在浏览器把文件上传到服务器的过程中,界面看上去似乎处于静止状态.由于这一切发生在后台,所以许多没有耐心的用户开始认为服务器"挂"了,因而再次提交文件,这当然使得情况变得更糟糕. 为了尽可能使得文件上传感觉更友好些,一旦用户提交

AJAX+JSF组件实现高性能的文件上载(3)

ajax|js|性能 四.处理AJAX请求 AJAX请求的生成是在这个组件的解码方法中处理的.我们需要检查这是否是一个实际的AJAX请求(为了区别于正常的编译行为),然后基于由ProgressMonitorFileItemFactory类的SessionUpdatingProgressObserver实例设置在会话中的值把一个XML响应发送回客户端. public void decode(FacesContext context, UIComponent component) { UIFileU

QFaces1.2 --Ajax方式,带进度条的文件上传组件FileUpload(for JSF)

这是QFaces的第4个组件,Ajax方式带进度条的文件上传组件,我希望每一个重要组件都提升一个版本, 呵呵!这个版本同时修正了ie6下的ajax兼容问题.在介绍完这个组件之后,打算介绍一下如何利用QFaces自 定义自己的Ajax组件,希望这个增强框架能对喜欢JSF的人有一些帮助.后面版本的升级可能就不会这么快, 或者考虑兼容一下facelets,并修正一些可能出现的错误,还有开源计划,然后继续维护并增加一些比较常 用与实用的组件,关注一下JSF2.0的发展等等. 好了,下面介绍一下QFace