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

  • 相关阅读:
    php总结4——数组的定义及函数、冒泡排序
    php总结3——基本函数、流程控制中的循环
    php总结2——php中的变量、数据类型及转换、运算符、流程控制中的分支结构
    php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释
    php中$t=date()函数参数意义及时间更改
    80端口未被占用,apache无法启动,命令行运行httpd.exe提示文档内容有错
    创建node.js一个简单的应用实例
    windows系统下nodejs、npm、express的下载和安装教程——2016.11.09
    前端工程师必备技能
    用于string对象中字符截取的几种函数总结——语法、参数意义及用途举例
  • 原文地址:https://www.cnblogs.com/zhxshseu/p/5285332.html
Copyright © 2011-2022 走看看