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);
                })
            }

  • 相关阅读:
    asp.net大文本保存 framework4.0
    temp文件夹权限对ASP网站以及ASP.NET网站的影响【转载】
    将access数据转移到sql server
    MVC图片上传、剪辑、缩略、水印
    魔兽War3按键精灵Ⅱ(201294)
    PHP中应用CKEditor和CKFinder上传图片读取图片
    C#中get和set个人理解
    asp.net验证码实现
    转三篇文章关于php中session机制
    ORM组件 ELinq (五)映射配置之XML
  • 原文地址:https://www.cnblogs.com/zhxshseu/p/5285332.html
Copyright © 2011-2022 走看看