A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聂玉林 中级黑马   /  2012-11-22 16:51  /  1356 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    Ajax,主要是涉及哪方面的技术?

6 个回复

倒序浏览
求解释?
回复 使用道具 举报

ajax架构中主要涉及的技术:
client: javascript解析xml, 操纵DOM修改html页面,javascript是“OO”的语言。
server: servlet + dao, 实现service接口即可
回复 使用道具 举报
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
回复 使用道具 举报
本帖最后由 陈辉 于 2012-11-22 22:33 编辑

主要涉及ajax的异步请求xmlHttpResponse对象
具体的可以参考下面的代码来理解:

<script type="text/javascript">
//ajax
//根据不同的浏览器使用相应的方式来创建异步对象
function createXmlHttp() {
    var xhobj = false;
    try {
        xhobj = new ActiveXObject("Msxml2.XMLHTTP"); //IE6.0+
    } catch (e) {
        try {
            xhobj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e2) {
            xhobj = false;
        }
    }

    //谷歌,FireFox,Opera 8.0+,safari
    if (!xhobj && typeof (XMLHttpRequest) != 'undefined') {
        xhobj = new XMLHttpRequest();
    }

    return xhobj;
}

        function getData() {
            var xhr;
            //1.创建异步对象
            xhr = createXmlHttp();
            //2.设置请求参数
            xhr.open("get", "FirstAjaxForFun.ashx", true); //FirstAjaxForFun.ashx
            //设置浏览器不使用缓存
            xhr.setRequestHeader("If-Modified-Since", "0");
            //3.设置回调函数,用来检查服务器是否将数据发送回给异步对象
            //异步对象的readystate属性发生改变时,就会回调方法来检查当前状态,执行用户定义的代码
            xhr.onreadystatechange = function () {
                //alert(xhr.readystate);
                //服务器已将数据发回到浏览器的异步对象
                if (xhr.readystate == 4) {
                    //如果返回的响应报文状态吗为200,才代表服务器运行正确
                    if (xhr.status == 200) {
                        //获得服务器返回的数据
                        //document.getElementById("div1").innerHTML = xhr.responseText;
                        //将服务器端发回来的具有json格式的字符串转成json对象
                        //用eval将字符串转换成Json格式时,一定要在两遍加上括号
                        var json = eval("(" + xhr.responseText + ")");
                        alert(json.data);
                    }
                    else {
                        alert("系统繁忙,请联系管理员!");
                    }
                }
            }
            //4.异步对象发送请求
            xhr.send(null);
        }
</script>

FirstAjaxForFun.ashx代码:
public void ProcessRequest(HttpContext context)        {
            context.Response.ContentType = "text/plain";
            System.Threading.Thread.Sleep(2000);
            //测试客户端if (xhr.status == 200)的时候用
            //int a = 0;
            //int c = 1 / a;
            //context.Response.Write("<h1>" + "Hello World!" +
            //    DateTime.Now.ToLocalTime().ToString() + "</h1>");
            if (!string.IsNullOrEmpty(context.Request.Form["txtName"]))
            {

               //{'data':'who are you post'} 是Json格式的字符串
                context.Response.Write("{'data':'who are you post'}");
            }
            else
            {
                context.Response.Write("{'data':'No,I am get'}");
            }
        }

点评

挺好的  发表于 2012-11-23 10:52
回复 使用道具 举报
邓连超 发表于 2012-11-22 18:04
ajax架构中主要涉及的技术:
client: javascript解析xml, 操纵DOM修改html页面,javascript是“OO”的语 ...

谢谢啊
回复 使用道具 举报
陈辉 中级黑马 2012-11-23 14:18:19
7#
一起努力
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马