落伍者站长论坛's Archiver

bleakwind 发表于 2006-6-14 00:01

Ajax专题...

[color=Green]Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序.比如我们经常用的Gmail就采用了Ajax技术...甚至将来融合Ajax的web应用程序将代替桌面应用程序.这不是不可能,这对我们这些Web程序员无疑是个好消息(每次看到那些做ERP的几万几十万的赚钱心里就不爽啊,都是程序员差距怎么这么大呢?)...[/color]

[color=Blue]本专题将收集一些常用Ajax资料教程应用等,希望大家踊跃提供资料.[/color]

[color=Blue]Ajax 的定义[/color]
Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写.这个短语是 Adaptive Path 的 Jesse James Garrett 发明的,按照 Jesse 的解释,这不是每个首字母缩写词.

[color=Blue]Ajax 所用到的基本技术:[/color]
·HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段.
·JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信.
·DHTML 或 Dynamic HTML,用于动态更新表单.我们将使用 div、span 和其他动态 HTML 元素来标记 HTML.
·文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML.

[color=Green]废话少说,先来两个Ajax类库:[/color]

[color=Blue]>> XAJAX[/color]
特点:采用PHP编写,支持UTF-8编码,Smarty模板,体积稍大,功能丰富,使用方便
官方:[url]http://www.xajaxproject.org/[/url]
下载:[url]http://sourceforge.net/project/showfiles.php?group_id=139736[/url]
中文手册:[url]http://www.im286.com/attachment.php?aid=3399[/url]

[color=Blue]>> SAJAX[/color]
特点:包含PHP,ASP等8种语言的Ajax类库,功能略弱
官方:[url]http://www.modernmethod.com/sajax/[/url]
下载:[url]http://www.modernmethod.com/sajax/download.phtml[/url]






 

[[i] 本帖最后由 bleakwind 于 2006-6-14 00:18 编辑 [/i]]

bleakwind 发表于 2006-6-14 00:13

相关附件下载...

[[i] 本帖最后由 bleakwind 于 2006-6-14 00:17 编辑 [/i]]

kukat 发表于 2006-6-14 05:56

谢谢 收下了

kukat 发表于 2006-6-14 06:12

[url]http://lib.verycd.com/2006/05/13/0000102696.html[/url]
这里有 方正apabi联盟制作[Ajax.基础教程].pdf 有兴趣的可以看看

kaca 发表于 2006-6-14 08:36

收到,谢谢

gareth 发表于 2006-6-14 12:40

感谢

idleren 发表于 2006-6-15 15:24

*** 作者被禁止或删除 内容自动屏蔽 ***

kk526 发表于 2006-6-15 20:02

谢谢了,学习中~~~~~~~~~~~~

qilin088 发表于 2006-6-16 19:34

斑竹控制下吧

禁止灌水啊....

删吧

nan10 发表于 2006-6-16 20:49

怎么没 AJAX.NET?

IT柏拉图 发表于 2006-6-17 11:55

俺写的一个ajax的类
[code]
<!--
//xmlhttp和xmldom对象
DedeXHTTP = null;
DedeXDOM = null;
DedeContainer = null;

//获取指定ID的元素
function $(eid){
        return document.getElementById(eid);
}

//参数 gcontainer 是保存下载完成的内容的容器

function DedeAjax(gcontainer){

DedeContainer = gcontainer;

//post或get发送数据的键值对
this.keys = Array();
this.values = Array();
this.keyCount = -1;

//http请求头
this.rkeys = Array();
this.rvalues = Array();
this.rkeyCount = -1;
//请求头类型
this.rtype = 'text';

//初始化xmlhttp
if(window.XMLHttpRequest){//IE7, Mozilla ,Firefox 等浏览器内置该对象
     DedeXHTTP = new XMLHttpRequest();
}else if(window.ActiveXObject){//IE6、IE5
     try { DedeXHTTP = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }
     if (DedeXHTTP == null) try { DedeXHTTP = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }
}

DedeXHTTP.onreadystatechange = function(){
        if(DedeXHTTP.readyState == 4){
    if(DedeXHTTP.status == 200){
       DedeContainer.innerHTML = DedeXHTTP.responseText;
       DedeXHTTP = null;
    }
    else DedeContainer.innerHTML = "下载数据失败";
  }
  else DedeContainer.innerHTML = "正在下载数据...";
};

//增加一个POST或GET键值对
this.AddKey = function(skey,svalue){
        this.keyCount++;
        this.keys[this.keyCount] = skey;
        this.values[this.keyCount] = escape(svalue);
};

//增加一个Http请求头键值对
this.AddHead = function(skey,svalue){
        this.rkeyCount++;
        this.rkeys[this.rkeyCount] = skey;
        this.rvalues[this.rkeyCount] = svalue;
};

//清除当前对象的哈希表参数
this.ClearSet = function(){
        this.keyCount = -1;
        this.keys = Array();
        this.values = Array();
        this.rkeyCount = -1;
        this.rkeys = Array();
        this.rvalues = Array();
};

//发送http请求头
this.SendHead = function(){
        if(this.rkeyCount!=-1){ //发送用户自行设定的请求头
          for(;i<=this.rkeyCount;i++){
                  DedeXHTTP.setRequestHeader(this.rkeys[i],this.rvalues[i]);
          }
  }
 if(this.rtype=='binary'){
          DedeXHTTP.setRequestHeader("Content-Type","multipart/form-data");
  }else{
          DedeXHTTP.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  }
};

//用Post方式发送数据
this.SendPost = function(purl){
        var pdata = "";
        var i=0;
        this.state = 0;
        DedeXHTTP.open("POST", purl, true);
        this.SendHead();
  if(this.keyCount!=-1){ //post数据
          for(;i<=this.keyCount;i++){
                  if(pdata=="") pdata = this.keys[i]+'='+this.values[i];
                  else pdata += "&"+this.keys[i]+'='+this.values[i];
          }
  }
  DedeXHTTP.send(pdata);
};

//用GET方式发送数据
this.SendGet = function(purl){
        var gkey = "";
        var i=0;
        this.state = 0;
        if(this.keyCount!=-1){ //get参数
          for(;i<=this.keyCount;i++){
                  if(gkey=="") gkey = this.keys[i]+'='+this.values[i];
                  else gkey += "&"+this.keys[i]+'='+this.values[i];
          }
          if(purl.indexOf('?')==-1) purl = purl + '?' + gkey;
          else  purl = purl + '&' + gkey;
  }
        DedeXHTTP.open("GET", purl, true);
        this.SendHead();
  DedeXHTTP.send(null);
};

} // End Class DedeAjax

//初始化xmldom
function InitXDom(){
  if(DedeXDOM!=null) return;
  var obj = null;
  if (typeof(DOMParser) != "undefined") { // Gecko、Mozilla、Firefox
    var parser = new DOMParser();
    obj = parser.parseFromString(xmlText, "text/xml");
  } else { // IE
    try { obj = new ActiveXObject("MSXML2.DOMDocument");} catch (e) { }
    if (obj == null) try { obj = new ActiveXObject("Microsoft.XMLDOM"); } catch (e) { }
  }
  DedeXDOM = obj;
};
-->
[/code]

使用方法

//toemID 接收数据的元素ID,surl是请求页
//如果要用post,则myajax.SendPost(surl);
//用 myajax.AddKey(skey,svalue) 设定 get 或 post 的请求值
//   myajax.AddHead(skey,svalue) 设设定http请求头
function YourAction(toemID,surl)
{
     if($(toemID).innerHTML == ''){
       var myajax = new DedeAjax($(toemID));
       myajax.SendGet(surl);
    }
}

如果要用dom的,就比较麻烦些,不建直接用xhttp来获得dom,而是通过返回的内容再载入到dom中

hyper 发表于 2006-6-17 13:15

Prototype Dojo之类的框架也是必要的 文档说明也有中文的,但是其他的框架如Rico Backbase...还没有中文文档,有兴趣搞几个中国的官方也不错~~

yangjiangh 发表于 2006-6-17 19:51

收到,谢谢

borovski 发表于 2006-6-17 20:40

不错,收藏

折翼飞翔 发表于 2006-6-18 06:47

SAJAX0.12中去掉了asp版本,需要asp版本的可以下载0.11

[url]http://www.modernmethod.com/sajax/sajax-0.11.zip[/url]

bleakwind 发表于 2006-6-18 15:41

[quote]原帖由 [i]折翼飞翔[/i] 于 2006-6-18 06:47 发表
SAJAX0.12中去掉了asp版本,需要asp版本的可以下载0.11

[url]http://www.modernmethod.com/sajax/sajax-0.11.zip[/url] [/quote]

asp版本因为bug暂时去掉,不推荐现在用,可以等新版本发布后再用。。。


[quote]
ASP support has been temporarily removed due to bugs. It will be back soon.

- tlack
[/quote]

ishion 发表于 2006-6-22 09:32

[quote]原帖由 [i]qilin088[/i] 于 2006-6-16 19:34 发表
斑竹控制下吧

禁止灌水啊....

删吧 [/quote]

有同感

askie 发表于 2006-6-24 12:49

支持!

qiubowinter 发表于 2006-6-26 14:12

先留个位置!马上回来!放代码!

weisnet 发表于 2006-7-1 18:07

好东西!

*** 作者被禁止或删除 内容自动屏蔽 ***

页: [1] 2 3 4

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.