zoukankan      html  css  js  c++  java
  • AJAX程序实验

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <script type="text/javascript" >
            function btnClick () {
                try // Firefox, Opera 8.0+, Safari, IE7
                    xmlHttp = new XMLHttpRequest();
                }
                catch ( e) {// Old IE
                    try {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP" );
                    }
                    catch ( e) {
                        alert ("Your browser does not support XMLHTTP!");
                        return;
                    }
                }
     
                if (! xmlHttp) {
                    alert ("创建 xmlHttp对象异常" );
                    return false ;
                }
                xmlHttp .open( "POST""GetDate1.ashx?ts" new Date(), false); //准备向服务器的GetDate.ashx发出 Post请求
                //XMLHTTP默认(也推荐)不是同步请求,而是异步。 open方法并不像WebClient的 DownloadString那样把服务器返回的数据拿到才返回。
                //需要监听onreadystatechange 事件
                xmlHttp .onreadystatechange = function () {
                    if ( xmlHttp.readyState == 4 ) { // 服务器完成
                        if ( xmlHttp.status == 200 ) { // 如果状态码是 200,则是成功
                            document.getElementById("Text1" ).value= xmlHttp.responseText ;//responseText是服务器返回的文本
                        }
                        else{
                            alert ("AJAX服务器返回错误 ");
                        }
                    }
                }
                xmlHttp .send();
            }    
        </script >

    如果改成如下方式
    xmlHttp . open( "GET" , "GetDate1.ashx?"ts" + new Date (), false ); 
    那么发出请求以后
    发现点击按钮,时间不更新
    并且在Stream中没有请求。

    这是因为:xmlHttp . open( "GET" , "GetDate1.ashx?"ts" + new Date (), false );每次都发送一样的请求给服务器,AJAX直接从服务器缓存中取值,而不进行处理    ts" + new Date ()表示删除
    这样会直接从服务器缓存中获得,所以要加上一个每次都会变的值,使得每次的请求都不同,这样就不会从缓存中取值。

    用Jquery实现的代码是:


    function btnClick2() {
                var time = new Date();
                var second = time.getSeconds();
                $.get( "GetDate1.ashx", { id: 33, tr: second }, function (data) {//同样这里要有一个变化的值
                    $( "#Text1").val(data);
                })
            }

  • 相关阅读:
    linux共享内存的命令
    css元素类型
    不争万年,只珍朝夕我对编程的态度
    Oracle读书笔记PL/SQL编程(二)之程序流程
    oracle读书笔记PL/SQL编程(一)之基本数据类型、程序结构
    关于解决oracle登录:ora12154:tns:无法解析指定的连接标识符
    Hibernate读书笔记hibernate第一个案例的分析
    Oracle读书笔记PL/SQL编程(三)之游标
    解决jscollpan不能出现水平滑动条的问题
    关于org.hibernate.exception.SQLGrammarException: could not insert:
  • 原文地址:https://www.cnblogs.com/zhxshseu/p/5285332.html
Copyright © 2011-2022 走看看