Ragic 博客
企业电子化的专家 Ragic 教你如何利用各种软件、
云服务让公司快速升级!
加入 Ragic 企业电子化的行列!
云工作术
各类应用演示
案例故事
逃离恶梦
关于 Ragic
Facebook X YouTube
云数据库
博客
关于Ragic
云工作术
各类应用演示
案例故事
逃离恶梦
关于 Ragic

最简单的AJAX体系结构

作者:Jeff Kuo

上一篇提到作者在Javascript上比较不喜欢使用Library,也提到了几个主要的原因。这时候有些朋友就问了:那都不用Library或 Framework,要怎么作AJAX呢?因此在这边我介绍一下作者最熟悉、最常用,也应该算是最简单的一个AJAX体系结构吧!

AJAX最 主要的目的就是在不需要刷新画面的前提下,跟Server抓取数据,并且根据从Server抓的数据来更新变量和画面。而在比较旧的浏览器版本时代, 作者都是使用iframe或是更早的隐藏的frame来达到这样效果。而在比较新的浏览器版本中,都有提供这样功能的物件,只要利用以下的一个 function,就可以在各种浏览器中,获取用HTTP跟Server沟通的物件。

function getHTTPObject() {

var xmlhttp=false;

if(window.XMLHttpRequest) {

try {xmlhttp = new XMLHttpRequest();}

catch(e) {xmlhttp = false;}

}else if(window.ActiveXObject) {

try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}

catch(e) {

try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}

catch(e) {xmlhttp = false;}

}

}

return xmlhttp;

}

那 Server要传什么东西回来给浏览器呢?我通常有两种作法:最简单的方式就是直接生成一段Javascript回来给Client运行,可能是用 document.getElementById抓取画面上某个物件来修改他的内容,也可以是调用一些已经写好的函数。

我通常会把这样的 动作包成一个简单的小函数如下:

function read(url,func,sync){

var _reader=getHTTPObject();

_reader.open(\'GET\',file,!sync);

if(!sync){

_reader.onreadystatechange = function(){

if(_reader.readyState==4){

if(func) func(_reader);

}

}

}

_reader.send(null);

if(sync) {

if(func) func(_reader);

}

}

未来要做任何AJAX动作只要传入要调用的一个网址,然后传入用来处理Server回传值,例如直接eval回传的Javascript,就完成了一个 AJAX的调用!而所有用到的程序代码没有多少行,相信花个几分钟就可以瞭解,就不再需要用到一堆没时间去瞭解,出了问题不知道怎么修的程序代码啰!

read(‘server.jsp’,function(res){eval(res.responseText);});

博客背后使用 Ragic! : 最强大的 No Code 企业电子化工具
    把数据放在Excel上不只是拖累团队的行政效率,他也很容易出错并且无法进行任何内控。
    当您的团队成长时,使用Excel管理数据就会越来越痛苦。
    创建你们的第一个云数据库!

    马上登记
    免费试用 Ragic!

    用 Google 帐号登记

    立即科技 Ragic, Inc.
    02-7728-8692
    info@ragic.com
    台北市中正区南昌路二段81号9楼