zoukankan      html  css  js  c++  java
  • 不使用Ajax框架实现Ajax效果?

    为了简单明了,我只在html中测试;注释里写的很清楚,我就不多废话了;

    很多家公司在面试的时候可能会让你不使用任何Ajax的框架实现Ajax效果,虽然这段代码看上去挺痛苦,但也没有别的办法,记不记也得记(其实理解起来就没那么难记了……)

    readyState表示XMLHttpRequest对象的处理状态:
    0:XMLHttpRequest对象还没有完成初始化。
    1:XMLHttpRequest对象开始发送请求。
    2:XMLHttpRequest对象的请求发送完成。
    3:XMLHttpRequest对象开始读取服务器的响应。
    4:XMLHttpRequest对象读取服务器响应结束。
    
     

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        
    <title>不使用Ajax框架实现Ajax效果 </title>
        
    <script type="text/javascript" language="javascript">
            
    function btnClick() {
                
    var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); //创建XMLHTTP对象,相当于WebClient
                if (!xmlhttp) {
                    alert(
    "创建xmlhttp对象异常!");
                    
    return false;
                }

                xmlhttp.open(
    "POST""GetDate.ashx"false); //准备向服务器的GetDate.ashx(一般处理程序)发出POST请求。
                //XMLHTTP默认(也推荐)不是同步请求的,也就是open方法并不像WebClient的DownloadString那样把服务器返回的数据拿到才返回,是异步的,因此需要用匿名监听onreadystatechange事件;
                xmlhttp.onreadystatechange = function () {
                    
    if (xmlhttp.readyState == 4) {    //如果XMLHTTPRequest对象读取服务器响应结束;
                        
    if (xmlhttp.status == 200) {  //如果状态码为200则表示处理成功;

                            document.getElementById(
    "GetDate").value = xmlhttp.responseText;  //responseText属性为服务器返回的文本
                        } else {
                            alert(
    "AJAX服务器返回错误");
                        }
                    }
                }
                xmlhttp.send(); 
    //这时才开始发送请求
            }
        
    </script>
    </head>
    <body>
        
    <input id="GetDate" type="text" />
        
    <input type="button" value="请求时间" onclick="btnClick()" />
    </body>
    </html>

    GetDate.ashx (一般处理程序)代码:

    using System;
    using System.Web;

    namespace AJAX
    {
        
    /// <summary>
        
    /// GetDate 获取服务器的时间
        
    /// </summary>
        public class GetDate : IHttpHandler
        {

            
    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType 
    = "text/plain";
                context.Response.Write(DateTime.Now.ToString());
            }

            
    public bool IsReusable
            {
                
    get
                {
                    
    return false;
                }
            }
        }
    }
  • 相关阅读:
    云主机装黑果实践(6):处理云主机上变色龙启动后置过程:驱动和黑屏
    云主机装黑果实践(5):重得到镜像和继续强化前置启动过程
    云主机装黑果实践(3):得到云主机安装镜像
    云主机装黑果实践(2):在deepin kvm下测试mbr方式安装的黑果10.15最新版
    百度贴吧私信群发软件
    eclipse 工程默认编码修改 JSP编码修改
    Jquery 对象转json ,Json转对象。兼容浏览器。
    让人操蛋的童工新闻
    Hibernate 只获取外键id,不获取内容
    Spring Data Jpa 规范接口表
  • 原文地址:https://www.cnblogs.com/zhuiyi/p/2050799.html
Copyright © 2011-2022 走看看